Facebook Graph API SDK v5-将图片发布到页面的相册

布鲁诺·莱维克

我正在尝试使用Facebook PHP SDK v5将图片发布到属于Facebook页面的相册

我已经检查了(许多)类似的问题,但是当publish_actions仍然允许时,它们都与SDK的早期版本有关

我的设置:

  1. 我的应用程序已正确配置,并且能够检索访问令牌
  2. 我能够顺利运行一些测试API查询
  3. 我是此页面的管理员,我的访问令牌具有以下权限 ['manage_pages','publish_pages','user_photos']
  4. 'fileUpload' => true使用参数正确初始化了SDK

代码将图片发布到相册

它基于SDK文档中提供示例

<?php

require_once __DIR__.'/vendor/autoload.php';

$fb = new Facebook\Facebook(['app_id' => '123456', 'app_secret' => '123456', 'default_graph_version' => 'v3.3', 'fileUpload' => true]);
$picture = 'https://www.example.com/pic.jpg';
$album_id = '123456';
$access_token = 'mytoken';

try {
    $response = $fb->post('/'.$album_id.'/photos', array ('url' => $picture), $access_token);
} 
catch(Facebook\Exceptions\FacebookResponseException $e) {
    die('Graph returned an error: ' . $e->getMessage());
}
catch(Facebook\Exceptions\FacebookSDKException $e) {
    die('Facebook SDK returned an error: ' . $e->getMessage());
}

$graphNode = $response->getGraphNode();

这是我遇到的错误

图表返回了错误:(#200),因为已弃用必需的权限publish_actions,因此不建议使用此端点

确实,2018年4月引入的更改取消了使用功能,publish_actions但似乎文档尚未相应更新。

将图片发布到页面相册的新方法是什么?

非常感谢您的帮助!

布鲁诺·莱维克

在研究了替代解决方案几个小时之后,我能够找到一种解决方法。

显然,我使用的是用户访问令牌,而不是页面访问令牌

1-首先,验证您的令牌是否为用户/页面访问令牌

2-如果它是一个用户令牌,则需要请求页面访问令牌:

$user_access_token = 123456;
$page_id = 123456; // Can be retrieved via right click on your page logo + Copy link address
$response = $fb->get('/'.$page_id.'?fields=access_token',  $user_access_token);
$page_access_token = json_decode($response->getBody())->access_token;
echo $page_access_token;

3-最后,使用页面访问令牌将图片发布到页面上

完整代码

<?php

require_once __DIR__.'/vendor/autoload.php';

$fb = new Facebook\Facebook(['app_id' => '123456', 'app_secret' => '123456', 'default_graph_version' => 'v3.3', 'fileUpload' => true]);
$picture = 'https://www.example.com/pic.jpg';
$album_id = '123456';
$user_access_token = 'mytoken';
$page_id = 123456;

try {
    $response = $fb->get('/'.$page_id.'?fields=access_token', $user_access_token);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
    die('Graph returned an error: ' . $e->getMessage());
} catch(Facebook\Exceptions\FacebookSDKException $e) {
    die('Facebook SDK returned an error: ' . $e->getMessage());
}

$page_access_token = json_decode($response->getBody())->access_token;

try {
    $response = $fb->post('/'.$album_id.'/photos', array ('url' => $picture), $page_access_token);
} 
catch(Facebook\Exceptions\FacebookResponseException $e) {
    die('Graph returned an error: ' . $e->getMessage());
}
catch(Facebook\Exceptions\FacebookSDKException $e) {
    die('Facebook SDK returned an error: ' . $e->getMessage());
}

$graphNode = $response->getGraphNode();

我希望这有帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Facebook JS SDK的FB.api('/ me')方法未返回我在Graph API v2.4 +中期望的字段

Facebook Graph API GET请求-应包含“字段”参数(Swift,Facebook SDK v4.5.1)

使用Facebook PHP SDK v5获取页面相册列表

Facebook iOS SDK-Graph API v2.4中的“获取好友”列表

如何使用PHP SDK v5从Facebook页面删除帖子

Facebook Graph API:将照片上传到特定相册

使用Swift处理iOS SDK中的Facebook Graph API结果

使用Graph API将图像发布到Facebook

Facebook Graph API-未将按应用发布到粉丝页面的图片显示给所有用户

Facebook Graph API获取页面的评论

粉丝页面墙中的Facebook SDK v4和Graph Api 2.x自动发布

从php发布到我的粉丝页面facebook with facebook sdk 5 api 2.4

如何使用新的Graph API(v2.4)获得Facebook页面的总点赞数

Facebook PHP SDK将v4升级到v5和OpenGraph会话

Facebook Graph API:appsecret_proof和PHP SDK v.3.2.3的问题

使用php sdk5图形API 2.4将Facebook发布到粉丝页面

Facebook Graph API / SDK .NET-获取Facebook用户的PageID

从facebook API中保存用户的个人资料图片-PHP SDK V.5

使用Facebook PHP SDK v5添加Facebook页面选项卡

通过Graph API在Facebook上创建相册

如何获得使用Facebook Graph API发布到Facebook页面的视频数量?

从Facebook API获取个人资料图片网址-PHP SDK V.5

以页面发布到页面时,Facebook PHP SDK v5 OAuth登录错误

正确的 Facebook Graph Api Video Insitghts Request PHP SDK

Facebook Graph API v2.10 页面点赞

使用 Facebook Graph v5 sdk 在 Facebook 上发帖时出错

Facebook Graph API:Swift SDK 不工作:GraphRequest

在 Swift 5 中使用 Graph API 显示用户的 Facebook 图片

使用 Graph API 从 Facebook 相册获取视频