2010-12-12 78 views
3

Hey. Je développe une application en utilisant l'api Twitter4j. Afin de permettre l'application et d'obtenir un jeton d'accès, je lance le navigateur avec les paramètres de rappel que j'avais définis dans le fichier manifeste.Rappel Oauth pas trouvé après avoir autorisé l'application sur Twitter

<data android:scheme="scheme" android:host="authenticatorapp"></data> 

Après avoir laissé l'application, le navigateur appelle ce qui suit et échoue avec un message non trouvé. schéma: // authenticatorapp? Oauth_token = n5vd99dfnmnf ...

Je l'ai essayé à la fois sur l'émulateur et l'appareil. Dans l'émulateur, LogCat me donne ceci:

12-12 15: 04: 05,743: ERREUR/navigateur (230): onReceivedError -10 schéma: // authenticatorapp oauth_token = Jj ... M & oauth_verifier = 3ZfuY ... Le protocole n'est pas supporté.

- Le fichier manifeste:

<activity android:name=".AuthenticatorApp" 
     android:launchMode="singleInstance" 
     > 
     <intent-filter>   
      <category android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
      <data android:scheme="scheme" android:host="authenticatorapp"></data>         
     </intent-filter>    
    </activity> 

    <!-- Broadcast Receiver that will process AppWidget updates --> 
    <receiver android:name=".ZaytungWidget" android:label="@string/widget_name"> 
     <intent-filter> 
      <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />        
     </intent-filter> 
     <meta-data android:name="android.appwidget.provider" 
      android:resource="@xml/tweet_metadata" /> 
    </receiver> 
    <!-- Service to perform web API queries --> 
    <service android:name=".ZaytungWidget$UpdateService" /> 
</application> 

<uses-sdk android:minSdkVersion="4" /> 
    <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
    <uses-permission android:name="android.permission.INTERNET" />  

Répondre

3

Pouvez-vous s'il vous plaît poster l'ensemble du manifeste?

Je trouve la question suivante qui peut être utile plus tard: OAuth instance state in Android

La question liée à l'application d'exemple suivant, ce qui peut être utile:

http://code.google.com/p/jpoco/source/browse/trunk/jpoco-android-app/AndroidManifest.xml

+0

Merci, j'ai ajouté le fichier manifeste, je ne pouvais pas être sûr si je devais avoir une action principale par exemple, puisque j'ai l'intention de commencer à partir du widget. –

+0

Wow ça a marché. Merci!

+0

@Orkun: Solution intéressante: J'ai une question juste pour confirmer que je comprends bien: vous ' re ayant l'application natif et obtenir le rappel afin que l'utilisateur n'a pas besoin d'entrer un Pin Twitter OAuth, est-ce exact? Pour votre application sur Twitter, lorsque vous l'avez enregistrée, l'avez-vous définie comme "Application de bureau" ou "Application Web"? –

0

Si vous développez une application native, vous ne pas utiliser les paramètres de rappel, mais il faut laisser la l'utilisateur entrer l'épingle dans votre application quelque part - qu'il obtient lorsque vous ouvrez l'autorisation_url dans un navigateur ou probablement plus confortablement au sein de votre application dans un webview.

Vous pouvez également récupérer automatiquement la broche après que l'utilisateur a cliqué sur 'Oui' dans la page d'autorisation de la page twitter, mais vous ne savez pas si c'est contre Twitter.

+0

Merci pour l'aide. –

1

C'est ce que j'ai en mon travail Manifest.xml, où org.gpsagenda.OAUTH est l'activité faisant l'authentification.

 <activity android:name="org.gpsagenda.OAUTH" > 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW"></action> 
      <category android:name="android.intent.category.DEFAULT"></category> 
      <category android:name="android.intent.category.BROWSABLE"></category> 
      <data android:scheme="gpsagenda" android:host="twitt" /> 
     </intent-filter> 
    </activity>