1

Facebook アプリを作成しました。そのアプリを介してFacebookページのアルバムに画像を投稿できるようにする必要があります。そのためには、ページのアクセストークンを取得する必要があります。ページの管理者としてログインしている場合にのみアクセストークンを取得できますが、他のアカウントでログインすると、ページのアクセストークンを取得できません (ページが気に入ってアプリをインストールしたにもかかわらず)。コードは以下です

$fanpage = 'XXXXXXXXXXXXX';

$pages_arr = array(
'access_token'=>$access_token,
'fields'=>'access_token' 
);

$page_token = $facebook->api('/'.$fanpage, 'get', $pages_arr);
$fanpage_token = $page_token['access_token'];

**//When logged in as admin of the page I get the token but I don't get the token if I am not //page admin**

echo $fanpage_token;

$file = "@".realpath("test.jpg");  
$args = array(
    'message' => 'test',
    'image' => $file,
    'aid' => $album_id,
    'no_story' => 1, 
    'access_token' => $fanpage_token  // note, we use the page token here
);

$photo = $facebook->api("/$album_id/photos", 'post', $args);
if( is_array( $photo ) && ! empty( $photo['id'] ) )
    echo 'Photo uploaded. Check it on Graph API Explorer. ID: ' . $photo['id'];

アプリのインストール時に次の権限を求めています

manage_notifications,user_photos,photo_upload,publish_stream,friends_photos,manage_pages
4

1 に答える 1

1

これは意図した動作だと思います。manage_pages パーミッションは、ユーザーが管理するページへのアクセスを許可します。他の (管理者以外の) ユーザーがページにアップロードする必要がある場合は、そのページの有効なアクセス トークンをアプリに保存する必要があります。次に、保存したアクセス トークンを使用して、ユーザーから提供された画像をアップロードします。

于 2012-03-29T00:50:54.070 に答える