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 回答