1
我想我最好使用PHP和OAuth(PECL擴展)上傳圖片到Twitpic和我不斷收到以下錯誤:認證和頭拒絕與Twitpic和OAuth
Could not authenticate you (header rejected by twitter)
這是我的代碼遠:
$arguments[] = "oauth_consumer_key=" . $this->consumer_key;
$arguments[] = "oauth_nonce=" . md5(time());
$arguments[] = "oauth_signature_method=HMAC-SHA1";
$arguments[] = "oauth_timestamp=" . time();
$arguments[] = "oauth_token=" . $this->oauth_token;
$arguments[] = "oauth_version=1.0";
$sbs = oauth_get_sbs("POST", "http://api.twitpic.com/2/upload.xml", $arguments);
$signature = urlencode(base64_encode(hash_hmac("sha1", $sbs, $this->consumer_secret . "&", true)));
$arguments[] = "oauth_signature=" . $signature;
sort($arguments);
$headers[] = "X-Auth-Service-Provider: http://api.twitter.com/1/account/verify_credentials.json";
$headers[] = "X-Verify-Credentials-Authorization: OAuth\n" . implode(",\n", $arguments);
$postfields["key"] = $this->api_key;
$postfields["media"] = "@$image";
$postfields["message"] = $message;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://api.twitpic.com/2/upload.xml");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($curl);
有人可以告訴我我做錯了什麼嗎?