-3

我正在尝试通过服务器上的 cron 发布到我网站的 Facebook 粉丝页面。

我在 Facebook 上创建了一个名为“John Doe”的用户,在我网站的 Facebook 粉丝页面上让他成为管理员,然后我在沙盒模式下从该用户创建了一个应用程序,所以只有他“John Doe”可以“运行”它。

我从运行它的“John Doe”那里为我的应用程序授予了必要的权限。

我可以通过developers.facebook.com 手动获取访问令牌,并使用它们通过“John Doe”的应用程序从我的php cron 脚本发布到我网站的Facebook 粉丝页面。

问题是,为了让它工作,我的“John Doe”facebook用户必须登录。

我应该怎么做我的网站 php cron 脚本总是自动有效的访问令牌,以便它可以通过管理员“John Doe”正在使用并允许访问的应用程序成功发布到网站的 Facebook 粉丝页面?

现在,我以“John Doe”的身份手动登录 facebook,并且我正在将 developer.facebook.com 的访问令牌复制粘贴到我的 php 脚本中,并且它可以工作。

(我网站的 Facebook 粉丝页面中的成功帖子显示为“mywebsite 通过 myapp 共享了一个链接”,所以我很确定除了访问令牌之外,其他一切都很好)

先感谢您

4

2 回答 2

4

这个问题与我自己的问题非常相似,我花了 2 天时间试图解决这个问题。解决方案非常简单。

  1. 将您的应用设置为Native/Desktop,这样您就可以获得一个 60 天的令牌(稍后您将把它变成永久的)。通过转到https://developers.facebook.com/apps/编辑设置 > 高级 > 在应用类型中选择本机/桌面来执行此操作。

  2. 转到https://developers.facebook.com/tools/explorer/选择您的应用,然后获取访问令牌

  3. 扩展权限选项卡中,选择manage_pagespublish_stream

  4. 现在您有一个 60 天的临时令牌。

  5. 要获取您的永久令牌,请转到此处并使用您的临时令牌:https://graph.facebook.com/me/accounts?access_token=REPLACE_THIS_WITH_YOUR_TEMPORARY_TOKEN

您应该会看到您是管理员的所有 Facebook 页面的永久访问令牌

于 2012-11-23T20:40:41.713 回答
3

请参阅https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/ - 特别是场景 5 -

  1. 使用服务器端 Oauth 流程(有关详细信息,请参阅登录文档)获取页面管理员(具有manage_pages权限)的访问令牌

  2. 检索您从/me/accounts或检索的页面访问令牌/<PAGE ID>?fields=access_token

此页面访问令牌将无限期过期,这意味着它不会过期,除非用户不再是页面管理员、删除您的应用程序、终止所有应用程序会话等。

于 2012-11-20T18:23:52.373 回答