35

トークンの有効期限が切れる原因として考えられるものは何ですか (ユーザーがアプリの認証を取り消す以外に)?

私の問題は、数千人のユーザーがいるアプリを持っていることです。すべての API 通信は完全に機能しますが、一部のユーザーではinvalid or expired tokenエラーが発生します。最初は、アプリへの認証をキャンセルしたユーザーですが、何人かに連絡しましたそれらのアクセスを取り消していません。

そのエラーを引き起こす可能性のある他の問題は何ですか?

4

11 に答える 11

20

アクセス トークンの使用中にGET account/verify_credentialsを呼び出すことで、いつでもアクセス トークンの整合性を確認できます。

その言及と研究により、私はそれを知るようになりました:

ユーザーが設定からアプリケーションを明示的に拒否した場合、または Twitter 管理者がアプリケーションを一時停止した場合、アクセス トークンは無効になります。申請が一時停止された場合、申請ページに一時停止されたことを示すメモが表示されます。

Twitter の OAuth アクセス トークンが無効/期限切れになっているのはなぜですか?

この投稿を確認してください:無効な/期限切れのアクセス トークン

Googleグループには次のような投稿があります:

二度目のチャンスはありません。これは仕様によるものです。OAuth リクエストには一意の署名があります。特定の要求が送信されると、再度送信することはできません。PIN が正しく入力されていれば、すべて問題なく、アクセス トークンを取得できます。間違った PIN を入力すると、401 Unauthorized が返されますが、これは想定どおりの結果です。しかし、再度 PIN を入力しようとすると、正しい PIN であっても未承認として表示されます。

上記の参照については、このリンクを確認してください。

同じ問題に対するTwitterの従業員によるいくつかの提案:

この時点で 2 つの提案があると思います: 1.) アプリケーションの設定に移動し、[キーのリセット] タブを使用してコンシューマー キーとシークレットをリセットし、アプリでこれらの値を更新して、引き続き表示されることを確認します。同じ動作。2.) request_token 呼び出しで oauth_callback を渡してみてください。正直なところ、これが違いを生むとは思いませんが、ここでできる限り厳格になりたいと思っています。

また、この議論を確認してください:

dev.twitter.com のアプリの設定の代わりに、oauth/access_token 呼び出しから返された oauth_token と oauth_token_secret を使用する必要があります。

于 2013-08-01T12:45:21.127 に答える
1

まず第一に良い質問ラン。

Twitter開発者を調べたことがありますか??

Twitter は 2 つのトークンとライブラリのペアを提供するため、どのトークンを使用するかが曖昧になることがあります。そのうちの 1 つは秘密鍵です。

Twitter ID で始まり、その後にハイフンが続くトークンを選択する必要があります。

あなたの質問は、このエラーがあなたのユーザーの一部で発生するということです。したがって、アプリ自体がトークンを選択するのが曖昧であると感じる答えは次のとおりです。

私は完全に正しくないかもしれませんが、少なくとも一度はこの解決策を試してみることをお勧めします.

于 2013-08-01T11:15:24.387 に答える
1

Access Token=738629462149844993-FcWHjfcucCLGEosyGGQ38qI******iC の場合、ハイフン (-) の後に USERID を付けることを忘れないでください。

于 2018-01-03T08:33:46.093 に答える
0

May be this will be helpful for you.I faced the same problem.

Please find the below piece of code snippet

$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') 
   ));


}
于 2013-07-17T04:34:55.157 に答える