代码之家  ›  专栏  ›  技术社区  ›  robjmills

Zend\u服务\u Twitter Oauth签名不正确

  •  2
  • robjmills  · 技术社区  · 14 年前

    我已经成功地连接到twitter使用ZendèuOAuthè消费者,并获得了一个访问令牌,但当我试图使用这个访问令牌,我得到了一个错误。

    代码如下:

    $token = unserialize($twsession->access_token); # would be in DB
    $twitter = new Zend_Service_Twitter(array(
        'username' => $token->screen_name,
        'accessToken' => $token
    ));
    $response = $twitter->account->verifyCredentials();
    

    Zend_Rest_Client_Result Object (
        [_sxml:protected] => SimpleXMLElement Object
            (
                [request] => /1/account/verify_credentials.xml
                [error] => Incorrect signature
            )
    
        [_errstr:protected] =>  )
    

    我假设代码实际上是正确的,很难说,因为ZF站点上的示例不完整。

    FWIW我正在使用Zend Framework 1.10.8

    1 回复  |  直到 12 年前
        1
  •  3
  •   robjmills    14 年前

    缺少一些字段:

    $token = unserialize($twsession->access_token); # would be in DB
    $twitter = new Zend_Service_Twitter(array(
        'username' => $token->screen_name,
        'accessToken' => $token
    ));
    $response = $twitter->account->verifyCredentials();
    

    $token = unserialize($twsession->access_token); # would be in DB
    $twitter = new Zend_Service_Twitter(array(
         'username' => $token->screen_name,
         'accessToken' => $token,
         'consumerKey' => YOUR_APP_CONSUMER_KEY,
         'consumerSecret' => YOUR_APP_CONSUMER_SECRET,
         'callbackUrl' => YOUR_CALLBACK_URL
     ));
    $response = $twitter->account->verifyCredentials();
    

    要确认,对于有效的签名,您需要与一起使用的所有相同字段 Zend_Oauth_Consumer