2014-09-11 13 views
5

Ich verwende das Beispiel für die App hier https://github.com/itog/Twitter4j-android-Sample und es funktioniert. Ich benutze die gleiche Methode in meiner app, aber es null zurück, wenn bei I LinieTwitter Oauth Rückruf getOAuthRequestToken null

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

Hier ist mein Manifest

<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> 

sind Dies ist ein anderer Code, die ich gleich von der Beispielanwendung kopieren.

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(); 
    } 
} 

Logcat:

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

gehen Sie Schritt für Schritt durch http://blog.blundell-apps.com/sending-a-tweet/ – Blundell

Antwort

5

Nach einem großen Zeit Kampf, schaffe ich finde, dass ich zu

vergessen
  • tickte die twitter jar-Bibliothek (dumm von mir!)
  • zusätzliche Sicherheit

Sie müssen HTTP Stellen Sie das Minimum SDK für Ihre App

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

und voila wird es funktioniert.

+0

Gute Antwort, danke für Ihre Hilfe –

2

Es ist besser, anstatt SocialAuth für Android zu verwenden, wenn Sie nur gonna verwenden ein 3rd-Party-SDK für die Entwicklung sind, da es viel mehr bietet. Im Moment denke ich, dass dein Problem ein Entwickler-Twitter-Account ist.

+0

Ich habe einen Entwickler Twitter-Account. Ich benutze twitter4j auch für API. –