Ben PHP ve OAuth (PECL uzantısı) ile Twitpic görüntüleri yüklemek için elimden geleni çalışıyorum ve şu hatayı almaya devam:
Seni kimlik doğrulaması yapılamadı (twitter tarafından reddedildi header)
Bu şimdiye kadar benim kodudur:
$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);
Birisi ben ne yanlış yapıyorum bana söyleyebilir?