将照片上传到页面时间线Facebook SDK

时间:2012-05-16 09:28:45

标签: facebook

我制作了这个小应用程序,基本上要求用户登录并将照片发布到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,));

如果我使用Feed代替照片,就像这里一样

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

它有效,但只发布消息。 我需要所有权限:
user_photos user_videos publish_action
manage_pages publish_stream

1 个答案:

答案 0 :(得分:1)

要与页面进行交互,您需要用户的访问令牌。用户需要是页面的“经理”或“内容创建者”。这些令牌是每页用户。

我有一个PHP示例,其中使用cURL调用来处理它。我认为它提出了这个想法。

$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是该页面用户的访问令牌。

个人相册也here's an example by Facebook。您可以查找相册ID和令牌并使用该方法。