我正在为一个事件构建一个应用程序,以便他们可以直接在 Facebook 上发布新闻消息。我正在尝试使用 de php SDK V4 来实现此目的,但登录过程的某些部分我不明白(搜索几个小时后仍然找不到解决方案)。
我的问题出在登录过程中。首先,您必须指定您是哪个应用程序并提供您的应用程序 secret 。您必须使用帐户登录 Facebook。
- 但是我应该使用哪个帐户呢?他们的事件之一?矿? (我是事件页面的管理员)(这意味着所有消息都会 从我的帐户发布,而我不是发帖者……听起来不错 奇怪..)
- 我应该使用哪种方法登录 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”相关的用户?)。
最佳答案
听起来您需要使用以下流程:
- 让页面管理员使用其 Facebook 帐户登录。确保请求
manage_pages
扩展权限。这将使您能够访问他们管理的页面。 - 一旦他们授予您应用的访问权限,您将获得一个短暂的用户访问 token 。将其交换为长期用户访问 token 。
- 获取 user's pages 的列表与
/me/accounts
。每个页面都会返回一个access_token
字段。这些都是page access tokens 。我们希望使用长期存在的用户访问 token 来获取此列表,以便返回的所有页面访问 token 都不会有过期日期。他们永远活着! :) - 如果您想作为该页面发布内容,请使用页面访问 token 发布到该页面的留言墙上。如果您想以该用户身份发帖,请使用用户访问 token 在页面墙上发帖。
还有Facebook Query Builder可能会使整个过程变得更加容易。 :)
希望有帮助!
关于php - 自动在墙上发布 - Facebook Graph API PHP SDK v4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24419856/