2014-09-11 5 views
5

여기 응용 프로그램에 대한 샘플을 사용하고 있습니다 https://github.com/itog/Twitter4j-android-Sample이며 작동 중입니다. 나는 내 응용 프로그램에서 같은 방법을 사용하지만 트위터 Oauth 콜백 getOAuthRequestToken null

static final String CALLBACK_URL = "oauth://t4jsample"; [Copy the same as the Sample] 
requestToken = twitter.getOAuthRequestToken(CALLBACK_URL); 

라인

에 여기에 내가 샘플 응용 프로그램에서 동일한 복사 내 매니페스트

<activity 
     android:name="com.my.app.SharePreviewActivity" 
     android:screenOrientation="portrait" 
     android:theme="@style/Theme.Fullscreen" 
     android:windowSoftInputMode="stateAlwaysHidden|adjustPan" > 

     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data 
       android:host="t4jsample" 
       android:scheme="oauth" /> 
     </intent-filter> 
    </activity> 

이것은 다른 코드 인 경우는 null를 돌려줍니다.

private void askOAuth() { 
    ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); 
    configurationBuilder.setOAuthConsumerKey(CONSUMER_KEY); 
    configurationBuilder.setOAuthConsumerSecret(CONSUMER_SECRET); 
    Configuration configuration = configurationBuilder.build(); 
    twitter = new TwitterFactory(configuration).getInstance(); 

    try { 
     requestToken = twitter.getOAuthRequestToken(CALLBACK_URL); 
     Toast.makeText(this, "Please authorize this app!", 
       Toast.LENGTH_LONG).show(); 
     this.startActivity(new Intent(Intent.ACTION_VIEW, Uri 
       .parse(requestToken.getAuthenticationURL()))); 
    } catch (TwitterException e) { 
     e.printStackTrace(); 
    } 
} 

로그 캣 :

09-17 16:37:40.528: W/System.err(21125): at twitter4j.HttpClientBase.request(HttpClientBase.java:53) 
09-17 16:37:40.528: W/System.err(21125): at twitter4j.HttpClientBase.post(HttpClientBase.java:82) 
09-17 16:37:40.529: W/System.err(21125): at twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:107) 
09-17 16:37:40.530: W/System.err(21125): at twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:92) 
09-17 16:37:40.531: W/System.err(21125): at twitter4j.TwitterBaseImpl.getOAuthRequestToken(TwitterBaseImpl.java:263) 
09-17 16:37:40.532: W/System.err(21125): at com.PhotoPreviewActivity.askOAuth(PPActivity.java:320) 
09-17 16:37:40.532: W/System.err(21125): at com.my.onShareTwitter(com.my.java:298) 
09-17 16:37:40.533: W/System.err(21125): at java.lang.reflect.Method.invokeNative(Native Method) 
09-17 16:37:40.534: W/System.err(21125): at java.lang.reflect.Method.invoke(Method.java:511) 
09-17 16:37:40.535: W/System.err(21125): at android.view.View$1.onClick(View.java:3687) 
09-17 16:37:40.535: W/System.err(21125): at android.view.View.performClick(View.java:4299) 
09-17 16:37:40.536: W/System.err(21125): at android.view.View$PerformClick.run(View.java:17549) 
09-17 16:37:40.537: W/System.err(21125): at android.os.Handler.handleCallback(Handler.java:725) 
09-17 16:37:40.538: W/System.err(21125): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-17 16:37:40.539: W/System.err(21125): at android.os.Looper.loop(Looper.java:153) 
09-17 16:37:40.539: W/System.err(21125): at android.app.ActivityThread.main(ActivityThread.java:5322) 
09-17 16:37:40.540: W/System.err(21125): at java.lang.reflect.Method.invokeNative(Native Method) 
09-17 16:37:40.540: W/System.err(21125): at java.lang.reflect.Method.invoke(Method.java:511) 
09-17 16:37:40.541: W/System.err(21125): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:848) 
09-17 16:37:40.541: W/System.err(21125): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:615) 
09-17 16:37:40.541: W/System.err(21125): at dalvik.system.NativeStart.main(Native Method) 
09-17 16:37:40.541: I/System.out(21125): [CDS] fix other exception in HttpUrlConnection 
09-17 16:37:40.543: W/System.err(21125): null 
09-17 16:37:40.543: W/System.err(21125): Relevant discussions can be found on the Internet at: 
09-17 16:37:40.543: W/System.err(21125): http://www.google.co.jp/search?q=8e063946 or 
09-17 16:37:40.543: W/System.err(21125): http://www.google.co.jp/search?q=c60cdc59 
09-17 16:37:40.544: W/System.err(21125): TwitterException{exceptionCode=[8e063946-c60cdc59 8e063946-c60cdc2f], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=4.0.2} 
+1

단계별 안내 http://blog.blundell-apps.com/sending-a-tweet/ – Blundell

답변

5

큰 시간 투쟁 후, 나는 쳤다

  • 트위터 항아리 라이브러리에 잊었 찾기 위해 관리 (바보 나!)
  • 추가 보안

당신이 필요하여 HTTP 앱에 사용할 수있는 최소 SDK를 설정하십시오.

if (android.os.Build.VERSION.SDK_INT > 8) { 
     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
       .permitAll().build(); 
     StrictMode.setThreadPolicy(policy); 
    } 

및 효과가 있습니다.

+0

좋은 답변, 도움 주셔서 감사합니다. –

2

그것은 훨씬 더 제공하기 때문에 당신은 개발을위한 제 3 자 SDK 단지 거 사용하는 경우 대신 안드로이드에 대한 SocialAuth을 사용하는 것이 좋습니다. 지금 당장 귀하의 문제는 개발자 트위터 계정을 얻는 것 같습니다.

+0

개발자 트위터 계정이 있습니다. 나는 API를 위해 twitter4j도 사용하고있다. –