401 - 尝试使用 PHP 将图片上传到 TwitPic 时出现"Could not authenticate you (header rejected by twitter)."



我正在使用meltingice的API for TwitPic,当我试图上传一张图片时,我得到一个401错误的消息"无法验证你(头部被twitter拒绝)"。

我的报头(从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,并且我看不到任何其他问题。

我做错了什么?

谢谢:)

EDIT:这是我的源代码。

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

我确信令牌,秘密和应用程序凭证是正确的,因为它们在我的Twitter API中工作而没有任何问题。我还仔细检查了Twitpic API密钥

检查TwitPic文档后,我注意到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相关的示例代码:
  • https://github.com/meltingice/php-twitpic/blob/master/EXAMPLE.php

相关内容

最新更新