php - desarrollador - twitter developers documentation
401-"No se pudo autenticar(encabezado rechazado por Twitter)." Al intentar subir una imagen con PHP a TwitPic (1)
Estoy usando la API de meltingice para TwitPic y cuando intento subir una imagen, aparece un error 401 con el mensaje "No se pudo autenticar (encabezado rechazado por Twitter)".
Mis encabezados (recuperados del objeto HTTP Request2) son:
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
)
Me aseguré de que la firma verify_credentials esté usando GET, y no puedo ver ningún otro problema.
¿Qué estoy haciendo mal?
Gracias :)
EDITAR : Aquí está mi código fuente.
$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''));
Y estoy seguro de que las credenciales del token, el secreto y la aplicación son correctas, ya que funcionan en mi API de Twitter sin ningún problema. También he comprobado dos veces la clave de API de Twitpic.
Después de consultar la documentación de TwitPic noté que se explicó el error 401: This method will return a 401 Unauthorized if the OAuth header was not present or could not be verified with Twitter.
Estás diciendo que te aseguraste de que la firma verify_credentials
esté usando GET mientras que la API solo acepta POST. Tal vez ese es tu problema?
Aquí está el código de ejemplo relacionado con la API que está utilizando: