我在查找如何以编程方式将照片发布到Facebook Page时遇到了一些麻烦。我已阅读Facebook Documentation on Authenticating as a Page,但all the examples involve Facebook Users。到目前为止,我刚刚使用Facebook的Graph API Explorer手动生成了所需的访问令牌。 <子>(3)子>
使用这个简单的代码,我成功上传了图片,但是我的拥有墙上,拥有相册中的拥有< / strong>名称,而不是 Facebook页面上的 Facebook页面的专辑,位于 Facebook页面的名称下。我需要将其发布到特定的 Facebook页面作为 Facebook页面本身。 <子>(1)子>
<?php
require 'facebook-php-sdk/src/facebook.php';
require 'config.php';
$facebook = new Facebook(array(
'appId' => $config['facebook_appId'],
'secret' => $config['facebook_appSecret'],
'fileUpload' => true
));
$facebook->setAccessToken($config['facebook_pageAccessToken']);
$args = array(
'message' => 'Facebook API test',
'source' => '@'.realpath(__DIR__.'/404.jpg')
);
$data = $facebook->api('/'.$config['facebook_pageId'].'/photos', 'post', $args);
$config['facebook_appId']
来自我创建的虚拟测试应用$config['facebook_appSecret']
来自我创建的虚拟测试应用$config['facebook_pageAccessToken']
使用范围manage_pages
,publish_stream
,photo_upload
和offline_access
(3)<Graph API Explorer生成/子>
$config['facebook_pageId']
是页面的ID(我也使用Graph API Explorer找到了这个)$data
包含图片的ID和墙贴(?)似乎代码示例或指向简明文档和/或教程的链接最好带有示例。非常感谢。
答案 0 :(得分:7)
这三个人的答案是:
让作为该网页管理员的用户授予您的应用manage_pages
permission
如果您使用此客户端(即Javascript SDK),则需要使用https://developers.facebook.com/roadmap/offline-access-removal/上方案4 的说明扩展其访问令牌
通过致电access_token
或致电/me/permissions
,检索网页的/[PAGE_ID]/?fields=access_token
。如果您在检索页面访问令牌之前扩展了页面管理员的access_token,则页面访问令牌将不会过期,除非用户不再是该页面的管理员或更改其密码,撤消对该应用程序的权限等(上述文档中的方案5) )
使用该访问令牌将照片上传到页面墙。
我认为这些步骤大部分都在此澄清:https://developers.facebook.com/docs/authentication/pages/(以网页登录)或Page documentation