2014-09-11 19 views
5

Sto utilizzando il campione per l'app qui https://github.com/itog/Twitter4j-android-Sample e funziona. Io uso lo stesso metodo nella mia app, ma restituire NULL quando sono in lineaTwitter Oauth Callback getOAuthRequestToken null

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

Qui sono i miei manifesti

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

Questo è altro codice, che copio lo stesso dal app campione.

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

attraversarlo, passo dopo passo http://blog.blundell-apps.com/sending-a-tweet/ – Blundell

risposta

5

Dopo una grande lotta di tempo, riesco a scoprire che ho dimenticato di

  • Ticked biblioteca Twitter vaso (stupido me!)
  • Aggiunto di sicurezza a http

È necessario impostare l'sdk minimo disponibile per la vostra applicazione

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

e voilà si funzionato.

+0

Buona risposta, grazie per il tuo aiuto –

2

E 'meglio usare SocialAuth per Android, invece, se si è appena gonna uso di uno SDK 3a parte per lo sviluppo in quanto offre molto di più. In questo momento penso che il tuo problema sia ottenere un account Twitter sviluppatore.

+0

Ho un account Twitter sviluppatore. Sto usando twitter4j anche per API. –

Problemi correlati