php - Facebook 图形 API : Publish post with multiple videos and photos

标签 php facebook facebook-graph-api fbsdk

我尝试使用 PHP SDK 发布包含多个视频和照片的帖子。我使用批量请求上传了视频和照片并获得了 ID。然后我使用 attached_media 传递媒体 ID 和发布数据。对于单张照片或多张照片,一切正常。但不适用于单个视频或多个视频。我收到此错误消息:每当 attached_media 中包含视频 ID 时,“图形返回错误:(#10) 应用程序无权执行此操作”。

这是我使用的代码:

$fb = $this->init(); try{ // Returns a Facebook\FacebookResponse object        
$publishData = [ 'message' => $post['content']];

    if(count($media_ids) > 0){
        $publishData ['attached_media'] = [];
        foreach($media_ids as $key => $media_id){
            array_push($publishData['attached_media'],'{"media_fbid":"' . $media_id . '"}');
        }
    }
    $response = $fb->post(
        '/me/feed',$publishData
        ,
        $accessToken
    );
}
catch(FacebookResponseException $e){
    echo 'Graph returned an error: ' . $e->getMessage();
    echo $e->getTraceAsString();
    exit;
}
catch(FacebookSDKException $e){
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    echo $e->getTraceAsString();
    exit;
}
$graphNode = $response->getGraphNode();

有没有办法解决这个问题。谢谢。

最佳答案

事实上,您不能混合使用照片和视频。 Facebook 的 API 不允许这样做。你可以:

  • 包含视频+文字(描述)的帖子
  • 包含多张照片+文字的帖子

要发布视频,您必须点击

POST https://graph-video.facebook.com/v10.0/<page id>/videos?file_url=<public file URL>&access_token=<your access token>&published=true&description=<text>

file_urldescription 应该是 URL 编码的。

要发布多张照片,您首先要“上传”照片,结果您将拥有 ID。您设置为 attached_media 参数的那些 id。

获取照片 ID:

POST https://graph.facebook.com/<page id>/photos?url=<public file URL>&access_token=<access token>&published=false

注意 published=false。这很重要。如果没有它,您将创建一个包含单张照片的页面帖子。

最后制作实际的页面帖子:

POST https://graph.facebook.com/<page id>/feed?message=<text>&access_token=<access token>&attached_media[0]={"media_fbid":"<id>"}&attached_media[1]={"media_fbid":"<id>"}

附言 此方法假定您已将内容上传到其他地方,并且您拥有可提供此内容的公共(public) URL。如果您有原始文件并且想将它们上传到 Facebook,那么您必须采用另一种方法。

关于php - Facebook 图形 API : Publish post with multiple videos and photos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47284140/

相关文章:

javascript - chrome facebook sharer.php 错误

android - 使用 graph api 2.2 从 android 中的 facebook sdk 4.0.1 获取好友列表

facebook - 无法使用 Graph API Explorer 读取数据

php - 在 PHP 7 中使用空合并运算符时,我可以用一些附加函数包装输入字段吗?

ios - iOS swift 4 中 Facebook 登录失败

android - 如何修复带有 expo 的应用程序中的 Facebook 错误 "Platform Policy 8.2"

php - 如何使用 Facebook 作为我网站的网关

php - 如果MySql行(字段)有任何文本输出

java - 将 JSON 对象解析为 Restful Web 服务

php - Symfony PHPUnit 测试(错误 500)