我制作了这个小应用程序,基本上要求用户登录并将照片发布到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
答案 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和令牌并使用该方法。