2

我们有我们认为不应该出现的情况,但找不到任何指导。

我们有一个帐户,其中每个品牌都有多个页面。我们需要一个无人看管的 Windows 服务,以便在检查数据库中的预定帖子后定期向各个页面发布帖子。

我们看到的唯一问题是身份验证。尽管 Twitter API 也使用 oAuth,但我们能够从 Twitter 获取永不过期的访问代码,并使用它来进行我们所有的 API 调用。我需要的是 Facebook API 中的等价物。缺乏这一点,我需要一种方法来完成我上面描述的事情。

提前感谢你的帮助。

~ DCT

4

2 回答 2

8

我刚刚从 Windows 服务中做了类似的事情来发布到我自己的提要。我使用了 facebook sdk(http://csharpsdk.org/

正如您在问题中所建议的那样,问题主要与身份验证有关。最后我发现了这个:

http://developers.facebook.com/docs/opengraph/using-app-tokens/

一旦您在要发布到的帐户上获得了正确权限的应用设置,您只需使用浏览器即可获得一个不会过期的令牌(只需添加应用 ID 和应用密码):

GET https://graph.facebook.com/oauth/access_token?
        client_id=YOUR_APP_ID
       &client_secret=YOUR_APP_SECRET
       &grant_type=client_credentials

这将返回一个不会过期的访问令牌,我只是将它粘贴到我的 app.config 中......

另外:请注意,由于您没有使用用户访问令牌,所有代表用户发布信息的调用都应引用 /[USER FB ID] 而不是 /me。

于 2012-11-09T08:58:00.937 回答
0

您应该能够通过http://facebookpsmodule.codeplex.com使用 Task Scheduler 和 PowerShell 来执行类似的操作(因此您不需要创建 Windows 服务)。预定脚本将使用 Read-FBConnection 读取每个页面的令牌,然后使用 New-FBPost 创建帖子。您首先使用 New-FBConnection -PageId 和 Write-FBConnection 设置令牌文件——它们会为您处理 OAuth gunk。

一些注意事项:

Facebook 离线访问移除 (http://developers.facebook.com/roadmap/offline-access-removal/) 即将到来,这将导致令牌最终超时。当前的令牌应该至少可以使用几个月,我很快就会有一个新版本的模块,它应该能够创建永不过期的页面令牌(不是用户令牌,只是页面令牌)。

Facebook Graph API 创建的帖子可能带有创建它们的“应用程序”标记。我将我的默认应用程序命名为“所有者”以使其不那么突兀。您可以使用我的应用程序或制作您自己的应用程序。

Facebook Graph API 支持创建帖子,但不支持这些帖子中的 @-links。

Facebook 可以并且确实改变了他们的 API 并打破了自动化系统的向后兼容性。离线访问删除只是其中的一个例子。您需要密切关注 Facebook 开发者博客。

于 2012-08-22T19:50:31.547 回答