如何使用Facebook App Access令牌?

时间:2012-10-15 15:14:47

标签: php facebook facebook-graph-api facebook-javascript-sdk

过去几天我一直在读很多东西,我相信我已经学到了很多东西。所有这些都归咎于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令牌中使用它?

谢谢!

2 个答案:

答案 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访问令牌进行发布。

您需要使用用户的扩展访问令牌获取粉丝页访问令牌。那个永远不会过期,然后你可以用它来永久地作为页面发出请求。