2

在过去的几天里,我读了很多书,我确信我学到了很多东西。所有这一切都是由于 Facebook 文档在整个网络上传播(在不好的意义上),使人们寻找信息并尝试很多事情。

我做了一些事情,比如:

  • 发布到页面的墙(图像、链接、文本)
  • 发布到个人资料的墙

所以,我考虑过为页面创建一种自动海报。但是,想象一下。我们需要访问令牌,那些不会过期的。

好的,没问题。根据我一直在阅读的内容,App Access Tokens 会解决这个问题,然后我可以使用脚本运行 cron!

但是它应该如何使用访问令牌运行发布呢?

目前,使用用户令牌,如果可以检索登录用户的 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 Explorer 手动获得了粉丝页面令牌,因为这将被 cronjob 使用。

我以前也有专辑ID。

我如何将它与 App Token 一起使用?

谢谢!

4

2 回答 2

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 作业一起工作。

于 2012-10-15T15:26:35.600 回答
0

在对 Facebook 应用程序 API 的使用进行了长时间的研究之后,感谢cbaclig,我终于发现应用程序无法控制某些东西,而只是有权执行诸如检查页面洞察、进行实时更新和一些东西之类的事情像那样。

我在这个链接中发现了这一点。

引用链接中的答案(以防它离线):

似乎搜索方法需要一个实际的用户访问令牌,而不仅仅是您在示例中使用的应用程序访问令牌。我用登录用户的访问令牌尝试了相同的查询,它工作正常。https://github.com/arsduo/koala/wiki/OAuth上的第一个示例描述了获取用户访问令牌的不同方法(通过 OAuth 重定向、Javascript SDK 等),您应该能够使用这些方法来制作您的查询。

通常,应用访问令牌仅用于特定于应用的事情,例如获取应用的洞察数据、注册实时更新、生成测试用户等。

让我们知道这是否有帮助!

编辑 11/11/12: 我终于发现页面访问令牌可以访问 publish_stream 和 manage_pages,这将允许他们使用永不过期的访问令牌进行发布。

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

于 2012-10-22T08:28:59.443 回答