401 - "Не удалось аутентифицировать вас (заголовок отклонен Twitter)". при попытке загрузить картинку с PHP на TwitPic
Я использую API meltingice для 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, и я не вижу никаких других проблем.
Что я делаю неправильно?
Спасибо:)
РЕДАКТИРОВАТЬ: Вот мой исходный код.
$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 без каких-либо проблем. Я также дважды проверил ключ API Twitpic.
1 ответ
После проверки документации 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: