web-dev-qa-db-fra.com

Échec d'obtention du jeton de demande sur les appareils sous Android M

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)
12
Arunkumar MG

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

16
vallabh

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

13
Moinkhan

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)

8
tej shah

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

7
Naveen

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

4
Vinay Vissh

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.

0
Alok Ranjan Singh

Créez votre jeton d'accès dans la clé et l'onglet jeton d'accès

0
Naveen Kumar M

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.

0
Reinhard Männer