通过API设置Facebook封面照片

15

通过API有没有一种方法可以获取和设置Facebook时间线个人资料的新封面照片?

4个回答

23

这似乎不再起作用了(至少在启用新的Graph Search的Facebook上是这样)。 - derekaug
2
@derekaug,它仍然可以工作。您只需要获取用户图片ID并将其替换为preview_cover参数即可。该图片需要已经在用户个人资料中。 - Will Soares
1
确认。这仍然有效! - Goon Nguyen

17

4
这非常酷,但似乎不适用于个人资料。我上传了一张照片,并使用ID作为封面的值。对于普通用户,它会返回: {"error":{"message":"(#100) Can only call this method on valid test users for your app","type":"OAuthException","code":100}}对于测试用户,它会返回true,但是封面照片没有更改。 - Tom Kincaid

6

您可以通过常规的照片API(在“封面照片”相册中)和用户对象cover字段获取图片。例如,使用/me?fields=cover来检索它。

目前没有API可用于设置用户封面照片,也没有任何添加此功能的计划。

可以使用API编辑页面的封面照片-有关更多信息,请参见页面API文档-您可以使用页面访问令牌向/PAGE_ID?cover=<页面相册中的照片ID>发出POST请求


嗨lgy,我尝试了这个。但不幸的是它显示了一个错误{"error": {"message":"(#200) User does not have sufficient administrative permission for this action on this page","type": "OAuthException","code": 200}}。我是我的页面管理员。 - user407283

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;
    }
}

根据我的经验,封面相册的类型是“cover”,而不是“cover_photo”。我也能够在JavaScript中获取该ID。然而,到目前为止,更新当前封面照片还没有成功。 - Alexis Wilke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接