2011-10-21 199 views

回答

21

There's修改用戶配置文件蓋沒有API的支持,但你可以上傳照片,並然後重定向用戶到: http://www.facebook.com/profile.php?preview_cover=PHOTO_ID

+0

這似乎不再適用(至少在啓用了新圖搜索的Facebook上)。 – derekaug

+2

@derekaug它仍然在工作。您所需要的只是獲取用戶圖片ID並將其替換爲preview_cover參數。該圖片需要已經在用戶檔案中。 –

+1

確認。這仍然有效! –

5

您可以通過普通照片API(位於'封面照片'相冊中)以及User objectcover字段獲取圖片 - 示例調用爲/me?fields=cover以檢索該圖片。

有沒有API來設置用戶封面照片,我不知道有任何計劃添加一個。看到Pages API documentation更多信息 - -

頁封面照片可以使用API​​來編輯你做一個POST請求/PAGE_ID?cover=<ID of a photo in the page's album>與頁面訪問令牌

+0

嗨lgy,我試試這個。但不幸的是它顯示錯誤{「error」:{「message」:「(#200)用戶對此頁面上此操作沒有足夠的管理權限」,「type」:「OAuthException」,「code」:200} }。我是我的頁面的管理員 – shahul

16

有一個頁面上更新封面照片的API

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

它要求帶照片的身份證,我的猜測是從用戶的相冊中的照片的ID。我試圖更新的照片,但認爲首先需要更新相簿的照片,以獲取照片的身份證

+4

這很酷,但似乎不適用於配置文件。我上傳一張照片和用戶的ID作爲封面的價值。 對於普通用戶,它返回 {「error」:{「message」:「(#100)只能在您的應用的有效測試用戶上調用此方法」,「type」:「OAuthException」,「code」 :100}} 對於測試用戶,它返回true,但封面照片不會更改。 –

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

根據我的經驗,封面相冊的類型是「cover」而不是「cover_photo」。我也可以在JavaScript中獲得該ID。然而,到目前爲止,沒有更新當前封面照片的運氣...... –

相關問題