尝试调用yahoo联系人API时,始终会收到token_rejected错误

时间:2013-11-22 14:39:29

标签: php yahoo-api

根据雅虎的文档,我按照以下步骤进行了操作:

  1. 收到请求令牌
  2. 将用户重定向到yahoo auth页面
  3. 在回调页面上使用来自GET参数的令牌来获取oauth_token
  4. 接收oauth_token并尝试通过以下网址呼叫联系人api以获取具有GET请求的联系人列表:

    http://social.yahooapis.com/v1/user/”。$ xoauth_yahoo_guid。 “/contacts?format=json&oauth_consumer_key='._YH_APP_CK。 '&安培; oauth_signature_method = PLAINTEXT&安培; oauth_nonce = noncedata&安培; oauth_version = 1.0'。 '&安培; oauth_signature ='。._ YH_APP_SK '%26' $ _ SESSION [ 'yahoo_token_secret']。 '和;组oauth_token =' $的oauth_token。 '&安培; oauth_timestamp ='。date_timestamp_get(date_create());

  5. ,其中

    $xoauth_yahoo_guid // user id
    _YH_APP_CK // consumer key
    _YH_APP_SK // consumer secret key
    $_SESSION['yahoo_token_secret'] // secret token that was received from yahoo
    

    我使用PLAINTEXT作为oauth_signature_method并使用连锁密钥和秘密令牌设置签名,如文档中所述,但仍然出现token_rejected错误,有人可以帮我找到原因吗?感谢。

1 个答案:

答案 0 :(得分:0)

我发现oauth_signature_method=PLAINTEXT无法用于http://次请求。在这种情况下应该使用oauth_signature_method=HMAC-SHA1。 以下代码可用于使用HMAC-SHA1方法创建oauth_signature: https://github.com/joechung/oauth_yahoo/blob/master/getacctok.php