Si no entendiste el título, te recomiendo que no sigas leyendo.
En este post, vamos a mostrar y explicar un poco el código necesario (que en realidad es bien simple) para cambiar el avatar de una cuenta twitter via api.
Para cambiar la imagen, vamos a usar el método account/update_profile_image, y la verdad, cURL se encarga de hacer todo.
Acá el código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?php /** * Por José Tomás Albornoz - www.eljojo.net * */ function changeAvatar($username, $password, $avatar) { //iniciamos cURL $ch = curl_init(); //iniciamos cURL /* configuramos cURL */ curl_setopt($ch, CURLOPT_VERBOSE, FALSE); //lo ponemos en true si queremos debuggear //definimos la url de el metodo que queremos usar curl_setopt($ch, CURLOPT_URL, "http://api.twitter.com/1/account/update_profile_image.xml"); //definimos el user/pass curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); //Le enviamos como Header de Request: Expect //para subir la foto es necesario, la verdad no se por que, pero si no esta no funciona. curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect:")); //aca le definimos la direccion de la foto. //puede ser una ruta absoluta o relativa: ../foto.png o /home/jojo/foto.png curl_setopt($ch, CURLOPT_POSTFIELDS, array("image"=>"@$avatar")); //le pedimos a curl que nos retorne el resultado y que no lo muestre. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //ejecutamos la peticion, cerramos cURL y retornamos la respuesta $response = curl_exec($ch); curl_close($ch); return $response; } changeAvatar('eljojo', 'clavesecreta', 'avatar.png'); ?> |
Disfruta y comparte.

Jojo, según lo que me habías comentado antes ahí te falto el parámetro type que tambien hay que enviar
wow, OSOM… en lo personal me carga trabajar con la API de twitter, prefiero jugar sacandole el jugo a wordpress antes de tener que meterme con la API de twitter xd. Anuque puedo conbinar perfectamente twitter y wordpress
@rkstro, si, pero como acá el tipo de foto puede variar se lo quité.
Hice una prueba y no hay ningún problema