API Twitter-raisons pour " token invalide ou expiré"
quelles sont les raisons possibles qui peuvent faire expirer un token (en dehors du fait que l'utilisateur n'autorise pas l'application)?
Mon problème est que j'ai une application avec plusieurs milliers d'utilisateurs, toutes les API de communication fonctionne parfaitement mais pour certains utilisateurs, je suis le invalid or expired token
erreur, mon premier était bien qu'ils sont des utilisateurs qui ont annulé l'authentification à l'application mais j'ai contacté certains d'entre eux, et ils n'ont pas révoqué l'accès.
des idées quelles autres questions peuvent causer cette erreur?
9 réponses
Vérifier l'intégrité d'un jeton d'accès à tout moment en appelant le OBTENIR compte/verify_credentials tout jeton d'accès.
son mentionné et par la recherche je suis venu à savoir que:
votre token d'accès sera invalide si un utilisateur rejette explicitement votre l'application à partir de leurs paramètres ou si un administrateur Twitter suspend votre application. Si votre demande est suspendue, il y aura une note sur votre page de demande disant qu'elle a été suspendue.
Pourquoi mon jeton d'accès twitter est-il invalide / expiré ?
Vérifier ce message: non valide ou a expiré jetons d'accès .
il y a un billet dans google groups qui dit:
vous n'avez pas de seconde chance, et c'est fait exprès. OAuth demandes avoir une signature unique; une fois qu'un la demande est soumise, il ne peut pas être soumis à nouveau. S'ils entrent le NIP correctement, tout va bien, vous obtenez un token d'accès. S'ils entrent mal le NIP, vous obtenez 401 non autorisé - qui est devrait. Mais s'ils essayent alors à nouveau d'entrer la broche, même la broche correcte montre autorisées.
Cochez cette case link pour la référence ci-dessus.
quelques suggestions par un employé de twitter pour le même problème:
je suppose qu'il y a deux choses que je suggérerais à ce stade: 1.) Aller à vos paramètres d'application et utilisez l'onglet "Réinitialiser les touches" pour réinitialiser votre clé de consommateur et secret, puis mettre à jour ces valeurs dans l'application et vérifiez que vous voyez toujours le même comportement. 2.) Essayer de passer oauth_callback dans votre appel request_token. Honnêtement, je ne pense pas que ce va faire une différence, mais je veux essayer et d'être aussi rigoureux que je peux ici.
vérifier aussi ce discussion dire:
vous devez utiliser les oauth_token et oauth_token_secret retournés de oauth/access_token appel, au lieu de celui de votre application réglages en dev.twitter.com
en plus des commentaires que tout le monde a faits, il arrive que l'api twitter renvoie une erreur de" token invalide " lorsque le token n'est pas le problème. Je l'ai remarqué le plus quand j'ai construit une chaîne de requête qui ne se parse pas correctement. Par exemple, une fois j'ai eu cette erreur quand je passais dans screen_name qui avait des symboles qui n'étaient pas URI-encodables. Je l'ai aussi obtenu quand je suis passé dans des valeurs vides comme celle-ci (où le curseur est vide):
https://api.twitter.com/1/followers.json?cursor=&screen_name=whatevah
pourriez-vous nous donner les détails des appels qui retournent cette erreur?
j'ai eu la même erreur, puis j'ai changé (access_token) to (access_token_key)
et ça a marché pour moi.
j'espère que ça aidera quelqu'un.
il est possible que ces utilisateurs aient et non accès révoqué. Mais d'après mon expérience, un token d'accès peut aussi être expiré après que l'utilisateur (dans les cas de test: moi) a changé son mot de passe.
lorsque l'utilisateur fait cela, vous ne pouvez plus utiliser l'API REST de l'API stream sur le scope de cet utilisateur. Veuillez adapter votre application à cette situation. Révoquer la session de l'utilisateur, ainsi quand il revient à votre application, il / elle peut être redirigé vers Twitter à nouveau pour lancer un nouveau processus de token D'accès à OAuth. Ou envoyez-lui un e-mail pour lui demander de bien vouloir se reconnecter. Vimeo / Windows/... sont certaines des personnes manipulant des jetons périmés avec des e-mails.
amusez-vous bien!
Ma réponse de Dieu est correct, mais je vais partager ma réponse à partir d'une autre question expliquer comment il pouvait être l'horloge de votre ordinateur:
si votre débit D'eau fonctionnait un jour et échouait le jour suivant, vérifiez l'horloge de votre ordinateur 1519110920" . Je courais une boîte vagabonde qui d'une certaine façon avait son heure réglée à la veille, ce qui a provoqué le retour de L'API Twitter {"code": 89, "message": "invalide ou expiré jeton."}. Cela peut aussi apparaître comme 401 timestamp en dehors des limites. Vous pouvez utiliser cette commande pour mettre à jour votre horloge dans Ubuntu:
sudo ntpdate time.nist.gov
méthode Alternative si ntpdate
n'est pas disponible sur votre système:
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
si votre Token D'accès=738629462149844993-Fcwhjfcuccclgeosyggq38qi******alors n'oubliez pas de mentionner le trait d'Union (-) suivi de votre nom d'utilisateur.
Peut-être que ce sera utile pour vous.J'ai connu le même problème.
s'il vous plaît trouver le morceau de code ci-dessous
$code = $tmhOAuth->user_request(array(
'method' => 'POST',
'url' => $tmhOAuth->url('oauth/access_token', ''),
'params' => array(
'oauth_verifier' => trim($params['oauth_verifier']),
)
));
if ($code == 200) {
$oauth_creds = $tmhOAuth->extract_params($tmhOAuth->response['response']);
// echo '<pre>';print_r($oauth_creds);exit;
$tmhOAuth->reconfigure(array_merge($tmhOAuth->config, array(
'token' => $oauth_creds['oauth_token'],
'secret' => $oauth_creds['oauth_token_secret'],
)));
$code = $tmhOAuth->user_request(array(
'url' => $tmhOAuth->url('1.1/account/verify_credentials')
));
}
avez-vous confirmé que les jetons ont fonctionné en même temps? Dans un autre système sur lequel j'ai travaillé, il y avait une erreur dans la façon dont les jetons étaient stockés et récupérés en toute sécurité, ce qui a provoqué la corruption d'un petit pourcentage d'entre eux. Si vous pouvez confirmer que les jetons fonctionné dans le passé, c'est une bonne première étape.
quand vous récupérez les jetons de stockage, sont-ils inchangés? Est-il possible qu'ils soient corrompus par la façon dont vous les gérez?
a mis un peu de journalisation en place pour garder une trace de quand les jetons fonctionnent et échouent. Un jeton jamais recommencer à travailler après il a échoué une fois? Si vous n'utilisez pas un token pendant 30 jours, est-ce qu'il expire? Avec un journal détaillé, vous pouvez commencer à identifier les jetons expirés et chercher les modèles utilisés pour indiquer ce qui pourrait les faire expirer.
assurez-vous d'explorer d'autres possibilités. Comment les utilisateurs révoquent-ils les jetons sur Twitter? Est-il facile de faire accidentellement? Pour les utilisateurs ayant échoué jetons, ils ont autorisé les applications qui ont cessé de travailler ainsi?
tout d'abord bonne question couru.
je veux vous demander que Avez-vous passé par les développeurs de Twitter??
parfois, il devient ambigu ce que le token à utiliser puisque Twitter fournit deux paires de tokens et la bibliothèque.L'un d'eux est une clé secrète.
vous devez sélectionner ceux token qui commence par votre ID Twitter suivi d'un trait d'Union.
Maintenant, votre question est cette erreur se produit avec certains des vôtres pour les utilisateurs. Voici donc la réponse que l'application elle-même trouve ambigu de choisir le jeton.
même si je n'ai pas tout à fait raison, je vous recommande d'essayer cette solution au moins une fois.