11

我正在尝试编写一个简单的应用程序,让用户授予我的代码写入她页面的 Facebook 流的权限。据我了解,它应该很简单:

  1. 让用户单击一个按钮,该按钮会在我的 Facebook 应用程序中启动一个包含页面的弹出窗口。
  2. 在该页面中,他们单击将stream_publish授予我的应用程序并将该权限分配给他们的页面的内容。
  3. 窗口关闭,我现在拥有在 cron 中运行脚本以将内容推送到该页面的流所需的所有信息。

这几天一直在看wiki。pyfacebook上的注释至少已经过时了一年,人们向我指出了 Django 的socialauth应用程序,它似乎同样过时,并且专注于针对用户而不是他们的页面。我什至不能在上面做#1,更不用说#2和3了。

如果有人可以向我展示如何使用 Django/Python 请求/接收写入 Facebook 流的权限,那将是一个很好的开始。

任何帮助将不胜感激。

4

2 回答 2

3

你看过minifb吗?他们的示例页面基本上显示了请求授权和接收会话密钥所需知道的所有内容。(另外,pyfacebook 的 github 页面显示该库仍然存在)

因此,对于您的场景,您需要:

  1. 请求“stream_publish”权限。有一些方法可以做到这一点,但实际上我会选择最简单的方法:提交表单(注意我从来没有为 facebook 做过应用程序,假设这种方法是最简单的,我可能错了:-)
  2. 正常使用您的应用程序:使用授权您的应用程序的用户的 user_id 调用 API 方法(您必须存储它),并且由于您已获得授权,因此它不应该失败。

为此,基本上,在您的模板上添加此表单:

<form promptpermission="publish_stream">
<input type="submit" value="Allow Publish Stream">
</form>

顺便说一句,向 Facebook 开发人员致敬。很不错的官方文档。

编辑:我还不允许发表评论:如果您在获取uid 时遇到问题,请检查此问题和参考资料。

于 2009-12-28T01:19:38.143 回答
1

经过大量的修补,我似乎已经解决了我在 Facebookland 中的所有问题:

  1. 事实证明,让用户单击按钮授予权限就像 Caio Romão 所说的那样简单。但就我而言,我发现将他们引导到 Facebook 桌面应用程序链接更容易、更可靠。
  2. 使用此链接方法,Facebook 允许您指定enable_profile_selector=1哪些页面将确保生成一个页面列表,用户可以从中选择哪些页面(如果有)将授予这些权限。
  3. 不过,对于这个,Facebook 完全崩溃了。虽然在 #2 中它们允许用户选择一个页面来授予权限,但它们不会通过POST 或在标题中将此信息传递给应用程序。它只是不存在。相反,您必须对 FQL 做一个丑陋的把戏,并向用户提出一些额外的问题才能使其正常工作。

无论如何,如果有人感兴趣,我会在我的博客上详细说明。谢谢你的帮助!

于 2010-01-03T12:29:05.550 回答