1

基本的に、ユーザーにログインして写真を FB ページに投稿するよう求めるこの小さなアプリを作成しました。私が持っているコードは、自分の壁に投稿するにはうまく機能しますが、ページに投稿するときは、いくつかの問題があります。

require_once('../src/facebook.php');

$config = array(
'appId' => 'XXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXX',
'fileUpload' => true,
);

$facebook = new Facebook($config);
$user_id = $facebook->getUser();

$photo = realpath("mypic.png"); // Path to the photo on the local filesystem
$message = 'Photo upload via the PHP SDK!';

if($user_id) {
try {
$ret_obj = $facebook->api('/PAGE_ID_HERE_??/photos', 'POST', array(
'source' => '@' . $photo,
'message' => $message,));

ここのように、写真の代わりにフィードを使用する場合

$facebook->api('/PAGE_ID_HERE_??/FEED',

機能しますが、メッセージを投稿するだけです。私は必要なすべての権限を持っています:
user_photos user_videos publish_action
manage_pages publish_stream

4

1 に答える 1

1

ページを操作するには、ユーザーのアクセス トークンが必要です。ユーザーは、ページの「管理者」または「コンテンツ作成者」である必要があります。これらのトークンは、ページごとのユーザーごとです。

これが cURL 呼び出しを使用して処理される PHP の例があります。という考えを与えていると思います。

$ch = curl_init();
$url = "https://graph.facebook.com/" . $album_id . "/photos?access_token=" . $access_token;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$retdata = curl_exec($ch);
echo($retdata);

この$album_id例では、 はページのアルバム ID であり、 はページ$access_tokenのユーザーのアクセス トークンです。

また、これは Facebook による個人のアルバムの例です。アルバム ID とトークンを変更して、そのアプローチを使用できます。

于 2012-07-11T08:48:19.623 に答える