2011-10-21 19 views

Respuesta

21

HAY ningún soporte API para cambiar la cubierta perfil de usuario, pero puede subir una foto y a continuación, redirija al usuario a: http://www.facebook.com/profile.php?preview_cover=PHOTO_ID

+0

Esto parece no funcionar más (al menos en Facebook con la nueva búsqueda de gráficos habilitada). – derekaug

+2

@derekaug Aún funciona. Todo lo que necesita es obtener una ID de imagen de usuario y reemplazarla por el parámetro preview_cover. La imagen debe estar ya en el perfil del usuario. –

+1

Confirmado. ¡Esto sigue funcionando! –

5

Puede obtener la imagen a través de las API de fotos normales (está en el álbum 'Fotos de portada') y también en el campo del User object - una llamada de muestra es /me?fields=cover para recuperarla.

No hay API para configurar la foto de portada del Usuario y no tengo conocimiento de ningún plan para agregar una.

Páginas fotos de portada se pueden editar utilizando la API - ver el Pages API documentation para más información - realiza una solicitud POST a /PAGE_ID?cover=<ID of a photo in the page's album> con la página de acceso de ficha

+0

Hola lgy, pruebo este. pero desafortunadamente muestra un error {"error": {"mensaje": "(# 200) El usuario no tiene suficiente permiso administrativo para esta acción en esta página", "tipo": "OAuthException", "código": 200} }. soy el administrador de mi página – shahul

16

Existe una API para actualizar la foto de portada en una página

http://developers.facebook.com/docs/reference/api/page/

se pide un carnet de identidad que supongo que es el id de una foto del álbum usuarios. Estoy tratando de actualizar la foto, aunque creo que la primera necesidad de actualizar esa foto en disco para recuperar la identificación con foto

+4

Esto es muy bueno, pero no parece funcionar para los perfiles. Subo una foto y el ID de usuario como valor de cobertura. PARA un usuario normal, devuelve {"error": {"mensaje": "(# 100) Solo puede llamar a este método en usuarios de prueba válidos para su aplicación", "tipo": "OAuthException", "código" : 100}} Para un usuario de prueba, devuelve verdadero, pero la foto de portada no cambia. –

1
$user_id = $facebook->getUser(); 

if($user_id == 0 || $user_id == "") 
{ 
    $login_url = $facebook->getLoginUrl(array(
    'redirect_uri'   => 'http://yoursite.com/upload.php?coverid='xxxxxx', 
    'scope'  => "publish_stream,user_photos,user_photo_video_tags,user_videos")); 

    echo "<script type='text/javascript'>top.location.href = '$login_url';</script>"; 
    exit(); 
} 

//get profile album 
$albums = $facebook->api("/me/albums"); 
$album_id = ""; 
foreach($albums["data"] as $item){ 
    if($item["type"] == "cover_photo"){ 
     $album_id = $item["id"]; 
     break; 
    } 
} 
+0

Desde mi experiencia, el tipo del álbum de fotos de portada es '" portada "' y no '" portada_photo "'. También puedo obtener esa identificación en JavaScript. Sin embargo, hasta ahora no hubo suerte en la actualización de la foto de portada actual ... –

Cuestiones relacionadas