2011-10-21 9 views

答えて

21

を取得するために、アルバムにその写真を更新すると思いますけれども、写真を更新しようとしていますが、あなたは、写真をアップロードすることができますし、ユーザーをリダイレクトする: http://www.facebook.com/profile.php?preview_cover=PHOTO_ID

+0

これは(少なくとも新しいグラフ検索が有効になっているFacebook上では)もう動作していないようだ。 – derekaug

+2

@derekaugまだ動作しています。必要なのは、User picture IDを取得し、それをpreview_coverパラメータに置き換えるだけです。画像は、すでにユーザープロファイル上にある必要があります。 –

+1

が確認されました。これはまだ動作しています! –

5

User objectcoverフィールドの通常写真API(画像は/me?fields=cover)で取得できます。

ユーザーの写真を設定するAPIはありません。追加する予定はありません。ページのアクセス権を持つあなたは/PAGE_ID?cover=<ID of a photo in the page's album>にPOSTリクエストを作るトークン

+0

こんにちは、これを試してみます。残念ながら、エラー "{" message ":"(#200)Userはこのページでこのアクションに対して十分な管理権限を持っていません "、" type ":" OAuthException "、" code ":200} }。私は私のページの管理者です – shahul

16

ページのカバー写真を更新するためのAPIがあります -

ページのカバーの写真は、APIを使用して編集することができます - 詳細についてはPages API documentationを見ます

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

それは、私は、ユーザーのアルバムから写真のIDと思い、写真付き身分証明書を要求します。私は、最初の必要性は、ユーザー・プロファイル・カバーを変更するためのAPIのサポートThere's写真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_photo」ではなく、「cover」である。 JavaScriptでそのIDを取得することもできます。しかし、これまでのカバー写真を更新することは今までなかった... –