过去几天我一直在读很多东西,我相信我已经学到了很多东西。所有这些都归咎于Facebook文档在整个网络上传播(在不好的意义上),使人们在寻找信息并尝试很多东西。
我做过一些像:
所以,我考虑过为页面创建一种自动海报。但是,想象一下。我们需要访问令牌,那些不会过期的。
好的,没问题。从我一直在阅读应用程序访问令牌处理,然后我可以用脚本运行一个cron!
但是如何使用Access Token运行发布?
目前,使用用户令牌,如果可以检索登录用户的ID,我正在使用此代码。
FB.api('/<?=$album_id?>/photos?access_token=<?=$fanpage_token?>', 'post', {
message: ementa,
url: selected_image
}, function(response) {
if (!response || response.error) {
alert('Falhou a publicar a ementa com imagem');
} else {
alert('Page Post ID: ' + response.id);
}
});
我已经从Graph API资源管理器中手动获取了粉丝页面标记,因为这只是由cronjob使用。
相册ID我以前也有。
我如何在App令牌中使用它?
谢谢!
答案 0 :(得分:4)
首先,您可以在php中获得扩展用户令牌(持续60天)
$facebook = new Facebook(array(
'appId' => APP_ID,
'secret' => APP_SECRET,
'fileUpload' => true
));
$facebook->setExtendedAccessToken();
然后$facebook->getAccessToken()
并将其存储到数据库;
之后,如果您希望将内容发布到相应的用户墙,请创建$ facebook对象,设置现有访问令牌并执行操作...
$facebook = new Facebook(array(
'appId' => $appId,
'secret' => $appSecret,
'fileUpload' => true
));
//set token
$facebook->setAccessToken($fbAccessToken);
$facebook->api('/me/photos','post', $data);
这将自动使用cron作业。
答案 1 :(得分:0)
经过对Facebook应用程序API使用的长时间研究,我终于发现感谢 cbaclig ,应用程序无法控制某些内容,并且只有权执行诸如Check Page Insights之类的操作,制作实时更新,以及类似的东西。
我在this link中发现了这一点。
在链接中引用答案(以防它脱机):
似乎搜索方法需要实际的用户访问令牌,而不仅仅是您在示例中使用的应用程序访问令牌。我使用登录用户的访问令牌尝试了相同的查询,并且它工作正常。 https://github.com/arsduo/koala/wiki/OAuth上的第一个示例描述了获取用户访问令牌的不同方法(通过OAuth重定向,Javascript SDK等),您应该可以使用它来进行查询。
通常,应用访问令牌仅用于特定于应用程序的事物,例如获取应用程序的洞察数据,注册实时更新,生成测试用户等等。
如果有帮助,请告诉我们!
编辑11/11/12: 我终于发现页面访问令牌可以访问publish_stream和manage_pages,这将允许他们使用expiry-never访问令牌进行发布。
您需要使用用户的扩展访问令牌获取粉丝页访问令牌。那个永远不会过期,然后你可以用它来永久地作为页面发出请求。