php - 自动在墙上发布 - Facebook Graph API PHP SDK v4

标签 php facebook facebook-graph-api

我正在为一个事件构建一个应用程序,以便他们可以直接在 Facebook 上发布新闻消息。我正在尝试使用 de php SDK V4 来实现此目的,但登录过程的某些部分我不明白(搜索几个小时后仍然找不到解决方案)。

我的问题出在登录过程中。首先,您必须指定您是哪个应用程序并提供您的应用程序 secret 。您必须使用帐户登录 Facebook。

  1. 但是我应该使用哪个帐户呢?他们的事件之一?矿? (我是事件页面的管理员)(这意味着所有消息都会 从我的帐户发布,而我不是发帖者……听起来不错 奇怪..)
  2. 我应该使用哪种方法登录 Facebook?有多种方法,例如 FacebookRedirectLoginHelper()、FacebookCanvasLoginHelper() 或 Javascript 方法。然而,据我所知,所有这些帮助程序都可以帮助您的用户登录他们的 Facebook 帐户,但这不是我想要的。

在我的搜索过程中,我发现了一些正在制作类似系统的人的例子( Facebook Graph API PHP SDK v4 - Post on Page )。他/她使用以下代码来获取 Facebook session :

FacebookSession::setDefaultApplication('{APP ID}','{APP SECRET}');
$session = new FacebookSession('{Page Access Token}');

这表明您不需要用户登录 Facebook,而只需要页面访问 token 。但是,如果我理解正确(如果我错了,请纠正我),要获得页面访问 token ,您首先需要用户访问 token ( https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens )。要获取用户访问 token ,您应该登录,然后我们回到故事开头的问题 1 和 2。

或者我可以使用以下 api 请求获取页面访问 token (根据 https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens )

GET /{user-id}/accounts

只要页面管理员授予该用户生成此类 token 的权限,就使用随机用户 ID(因此在检索页面访问 token 时不应登录与“用户 ID”相关的用户?)。

最佳答案

听起来您需要使用以下流程:

  1. 让页面管理员使用其 Facebook 帐户登录。确保请求 manage_pages 扩展权限。这将使您能够访问他们管理的页面。
  2. 一旦他们授予您应用的访问权限,您将获得一个短暂的用户访问 token 。将其交换为长期用户访问 token 。
  3. 获取 user's pages 的列表与/me/accounts。每个页面都会返回一个 access_token 字段。这些都是page access tokens 。我们希望使用长期存在的用户访问 token 来获取此列表,以便返回的所有页面访问 token 都不会有过期日期。他们永远活着! :)
  4. 如果您想作为该页面发布内容,请使用页面访问 token 发布到该页面的留言墙上。如果您想以该用户身份发帖,请使用用户访问 token 在页面墙上发帖。

还有Facebook Query Builder可能会使整个过程变得更加容易。 :)

希望有帮助!

关于php - 自动在墙上发布 - Facebook Graph API PHP SDK v4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24419856/

相关文章:

node.js - Passport-facebook 收不到邮件

PHP:变量为字符串时出现 "Array to string conversion"错误

javascript - 是否可以通过添加手动数据来更改从 JSON 数据生成的表?

php - 允许使用多个关键字在多个列中进行搜索

javascript - 使用 jQuery 捕获 Facebook 'Like' 按钮的点击

facebook - 有什么方法可以使用 facebook API 删除照片标签吗?

iphone - 如何使用 Graph API 在 iphone 中获取 Facebook 好友的在线状态。?

php - 在 Laravel 4 中删除工作人员之外的队列作业?

iOS Facebook 登录助手 sdk,如 Parser

javascript - Facebook 登录获取错误。 "Cannot read property ' id'未定义”