【问题标题】:upload photo to page timeline Facebook SDK将照片上传到页面时间线 Facebook SDK
【发布时间】:2012-05-16 09:28:45
【问题描述】:

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

【问题讨论】:

    标签: facebook


    【解决方案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 是页面用户的访问令牌。

    还有here's an example by Facebook 用于个人相册。您可以更改专辑 ID 和令牌并使用该方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多