3

Zendフレームワークアプリケーションでtwitterを使用してログインしています。しかし、Twitterから認証した後、次のエラーが表示されます:

Message:Could not retrieve a valid Token response from Token URL: /oauth/access_token?oauth_consumer_key=xxxxxxxxxxxxxxx&oauth_nonce=xxxxxxxxxxxxxxxxxxxx&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1352270857&oauth_token=xxxxxxxxxxxxx&oauth_version=1.0
&oauth_verifier=xxxxxxxxxxxxxxxxxxxxx&oauth_signature=wv5gdop77NA9BeZI7ilQcEFsqGH8CeR4%3D Invalid / expired Token

以下は私のコードです:

    public function twittercallbackAction() {
            $path = realpath(APPLICATION_PATH . '/../library/');
            set_include_path($path);
            $config = array(
                "callbackUrl" => "http://" . $_SERVER['HTTP_HOST'] . "/register/twittercallback",
                "siteUrl" => "http://twitter.com/oauth",
                "consumerKey" => "xxxxxxxxxxxxxx",
                "consumerSecret" => "xxxxxxxxxxxxxxxxxxxx"
            );

            $consumer = new Zend_Oauth_Consumer($config);
            if (!empty($_GET) && isset($_SESSION['TWITTER_REQUEST_TOKEN'])) {            
                $token = $consumer->getAccessToken($_GET, unserialize($_SESSION['TWITTER_REQUEST_TOKEN']));
                // Now that we have an Access Token, we can discard the Request Token
                // get users timeline            
                // $_SESSION['TWITTER_REQUEST_TOKEN'] = null;
            } else {
                // Mistaken request? Some malfeasant trying something?
                exit('Invalid callback request. Oops. Sorry.');
            }
}

Google でこの問題を検索していますが、解決策がありません。

どうすればこの問題に対処できますか。

ありがとう

4

2 に答える 2

3

http://framework.zend.com/manual/1.12/en/zend.oauth.introduction.htmlから取得したと思われるコードをテストしましたが、正しく機能します。確認すべき点がいくつかあります。

  • コンシューマーアプリのキー/シークレットは有効ですか?
  • サーバーには正しい日付/時刻が設定されていますか?
  • リクエストトークンを生成するためのコードは何ですか?
于 2012-11-22T03:19:10.890 に答える
3

最後に私はそれを自分で解決しました.... :-)

問題は、Twitter が API URL を更新したことでした。

から

http://twitter.com/statuses/user_timeline.json? 

https://api.twitter.com/1/statuses/user_timeline.json?

そしてそれは修正されます。

于 2012-11-29T10:50:27.053 に答える