La connexion à Twitter a échoué sur les appareils de prévisualisation Android 6.0. Cela fonctionne bien sur tous les autres appareils.
Le code ci-dessous est utilisé pour initialiser le tissu avec Twitter.
Les clés Twitter_ KEY et Twitter_SECRET ont été obtenues à partir des paramètres de l'application Twitter.
TwitterAuthConfig authConfig = new TwitterAuthConfig(Twitter_KEY, Twitter_SECRET);
Fabric.with(this, new Twitter(authConfig));
Voici le journal des erreurs que j'ai eu lors de la connexion en utilisant TwitterApiClient.
08-31 07:52:09.988 4692-4692/? E/Twitter: Failed to get request token
08-31 07:52:09.988 4692-4692/? E/Twitter: com.Twitter.sdk.Android.core.TwitterApiException: 401 Authorization Required
08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.Java:383)
08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.Java:220)
08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.Java:278)
08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.CallbackRunnable.run(CallbackRunnable.Java:42)
08-31 07:52:09.988 4692-4692/? E/Twitter: at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1113)
08-31 07:52:09.988 4692-4692/? E/Twitter: at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:588)
08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.Platform$Android$2$1.run(Platform.Java:142)
08-31 07:52:09.988 4692-4692/? E/Twitter: at Java.lang.Thread.run(Thread.Java:818)
08-31 07:52:10.000 4692-4692/? E/Twitter: Authorization completed with an error
08-31 07:52:10.000 4692-4692/? E/Twitter: com.Twitter.sdk.Android.core.TwitterAuthException: Failed to get request token
08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Twitter.sdk.Android.core.identity.OAuthController$1.failure(OAuthController.Java:95)
08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Twitter.sdk.Android.core.internal.oauth.OAuth1aService$1.failure(OAuth1aService.Java:215)
08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Twitter.sdk.Android.core.Callback.failure(Callback.Java:45)
08-31 07:52:10.000 4692-4692/? E/Twitter: at retrofit.CallbackRunnable$2.run(CallbackRunnable.Java:53)
08-31 07:52:10.000 4692-4692/? E/Twitter: at Android.os.Handler.handleCallback(Handler.Java:739)
08-31 07:52:10.000 4692-4692/? E/Twitter: at Android.os.Handler.dispatchMessage(Handler.Java:95)
08-31 07:52:10.000 4692-4692/? E/Twitter: at Android.os.Looper.loop(Looper.Java:148)
08-31 07:52:10.000 4692-4692/? E/Twitter: at Android.app.ActivityThread.main(ActivityThread.Java:5417)
08-31 07:52:10.000 4692-4692/? E/Twitter: at Java.lang.reflect.Method.invoke(Native Method)
08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:726)
08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:616)
Voici les choses à faire
Twitter dev account-> setting-> callBack url
et ensuite si vous faites pour Android (signifie connecter en utilisant pour les appareils Android)
twittersdk: //
(ajoutez ceci dans le rappel)
si vous utilisez iOS (signifie que vous vous connectez à l'aide d'appareils Apple)
twitterkit-CONSUMERKEY: //
(ajoutez ceci dans le rappel)
et appuyez sur le bouton des paramètres de mise à jour cela fonctionnera :)
Avant cette solution j’ai essayé d’utiliser une URL valide et même google.com aussi. Mais pour mon cas cela ne fonctionnait pas.
j'ai trouvé la solution ci-dessous et cela fonctionne bien pour moi.
Étape 1: allez dans les paramètres de votre application Twitter https://apps.Twitter.com/ >> Paramètres de l'onglet >> Remplissez le texte " twittersdk: // " à votre champ d'URL de rappel (je l'ai trouvé dans la classe lib)
Étape 2: Enregistrez votre mise à jour
Étape 3: vérifiez à nouveau votre application
J'ai le même problème et résolu. Dans mon cas, j'ai besoin de définir l'URL de rappel dans le compte Twitter dev.
Twitter dev account-> setting-> callBack url (définissez une URL valide telle que www.google.com)
c’est la meilleure solution lorsque l’autorisation Twitter ne fonctionne pas sans application. J'ai essayé avec FireBase valide auth url de rappel auth mais je ne travaillais pas et je cherche aussi beaucoup ce problème, mais je ne trouve pas la solution exacte, @Moinkhan la solution a fonctionné pour moi et m'a permis d'économiser du temps, grâce à @Moinkhan , ça marche
Avant cette solution, j'ai essayé une URL valide et même google.com. Mais pour mon cas cela ne fonctionnait pas.
j'ai trouvé la solution ci-dessous et cela fonctionne bien pour moi.
Étape 1: accédez au paramètre de votre application Twitter https://apps.Twitter.com/ >> Paramètres de l'onglet >> Remplissez le texte "twittersdk: //" dans le champ de l'URL de rappel (je l'ai trouvé dans la classe lib )
Étape 2: Enregistrez votre mise à jour
Étape 3: vérifiez votre application à nouveau
Je faisais face au même problème (quelques instants en arrière).
Allez sur Twitter Application Management ->
Cliquez sur l'application sur laquelle vous travaillez actuellement ->
Cliquez sur l'onglet 'Paramètres' ->
1) URL de rappel : insérez n'importe quelle URL valide (comme la page d'accueil de votre site Web)
2) Activer le verrouillage du rappel (Il est recommandé d'activer le verrouillage du rappel pour s'assurer que les applications ne peuvent pas écraser l'URL du rappel) : vérifiez qu'il s'agit de décoché
Le kit Twitter tente d'utiliser un webview si le application Twitter est not trouvé.
La partie WebView du kit Twitter doit override the callback url .
Informations sur Callback Url Le champ indique clairement: Pour empêcher votre application d’utiliser des rappels, laissez ce champ vide. _
Nous devons donc écrire toute URL valide :)
Référence:
Expérience personnelle obtenue quelques instants en arrière: P
Impossible d'obtenir le jeton de demande
Après avoir parcouru de nombreuses solutions, celle qui a fonctionné pour moi est simplement d'ajouter - twittersdk: // comme une URL de rappel supplémentaire dans la section des paramètres de votre application Twitter.
Créez votre jeton d'accès dans la clé et l'onglet jeton d'accès
J'ai eu le même problème sur iOS et j'ai trouvé un indice ici :
Apparemment, il est maintenant nécessaire de définir l’URL de rappel sur
http://Twitter-oauth.callback
Sind je l'ai fait, la connexion fonctionne à nouveau.