我正在使用meltingice's API for TwitPic,当我尝试上传图片时,出现401错误,并显示消息“无法验证您的身份(Twitter拒绝标题)”。
我的 header (从HTTP Request2对象检索)是:
Array
(
[user-agent] => HTTP_Request2/2.0.0 (http://pear.php.net/package/http_request2) PHP/5.2.17
[x-verify-credentials-authorization] => OAuth realm="http://api.twitter.com/", oauth_consumer_key="****************", oauth_signature_method="HMAC-SHA1", oauth_token="#########-******************", oauth_timestamp="1325192643", oauth_nonce="***********", oauth_version="1.0", oauth_signature="****************%3D"
[x-auth-service-provider] => https://api.twitter.com/1/account/verify_credentials.json
[content-type] => multipart/form-data
)
我确保verify_credentials签名正在使用GET,并且看不到任何其他问题。
我究竟做错了什么?
谢谢 :)
编辑:这是我的源代码。
$venue = $this->Venue->findById($venueId);
$twitterData = json_decode($venue['Venue']['twitter_data']);
$token = $twitterData->token;
$secret = $twitterData->secret;
$this->Twitter->loginTwitterUser($token, $secret);
require_once(WWW_ROOT.'twitpic/TwitPic.php');
$twitpic = new TwitPic('**********', '*******', '*********', $token, $secret);
$result['result'] = $twitpic->upload(array('media'=> '/home/todays/public_html/tsm/app/webroot/files/uploads/LOGOA7V1_10.png', 'message'=> 'test'));
而且我确信 token , secret 和应用程序凭据正确无误,因为它们可以在我的Twitter API中正常工作。我还仔细检查了Twitpic API key 。
最佳答案
在检查了TwitPic documentation之后,我注意到解释了401错误:This method will return a 401 Unauthorized if the OAuth header was not present or could not be verified with Twitter.
您是说您确保verify_credentials
签名正在使用GET,而API仅接受POST。也许那是你的问题?
以下是与您使用的API相关的示例代码:
关于php - 401-尝试使用PHP将图片上传到TwitPic时的 "Could not authenticate you (header rejected by twitter).",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8673480/