我正在为喜剧小组建立一个网站,该网站使用Facebook作为其营销平台之一;新网站的要求之一是在日历上显示他们所有的Facebook活动。
目前,我只是想整理一个Python脚本,它可以从我自己的Facebook帐户中提取一些数据,就像我所有朋友的列表一样。我认为一旦我能够做到这一点,我就可以从我的客户帐户中提取更复杂的数据(因为他们让我访问了他们的帐户)。
我已经查看了很多这里的帖子,并且还浏览了Facebook API文档,包括Facebook Connect,但我真的打败了我的脑袋。我读过的所有东西看起来都有些过分,因为它涉及设置大量的基础设施,以允许我的应用程序设置与任意用户帐户(谁授权我)的连接。鉴于我只需要访问1个帐户,这应该不会简单得多吗?
我无法在不显示Facebook登录窗口的情况下找到检索数据的方法。我有一个脚本可以检索我的所有朋友,但它包含一个重定向,我必须亲自登录到Facebook。
感谢任何建议或链接,我只是觉得我必须遗漏一些简单的东西。
谢谢!
答案 0 :(得分:7)
如果其他人发现这篇文章的话,只需在成功的建议上张贴我的笔记;
根据Daniel和William的建议,我使用Connect选项获得了正确的权限。来自威廉,此链接解释了Facebook连接如何工作
https://developers.facebook.com/docs/authentication/
关于设置实际身份验证的这一部分对我最有帮助。 http://developers.facebook.com/docs/api
基本上,它如下: 发布指向以下URL的链接。用户需要进行物理点击(即使该用户只是您,网站管理员)。 https://graph.facebook.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=http://www.example.com/HANDLER
这将重定向到Facebook登录,在用户进行身份验证后将返回http://www.example.com/HANDLER。如果您希望执行更多基本读取和新闻订阅源更新,则需要在上面的链接中包含此变量:scope = offline_access,user_photos。范围变量只包含逗号分隔的值列表,Facebook将在登录过程中明确告知身份验证用户,他们必须确定。对我来说最有用的是offline_access标志(user_photos也让你可以看到他们的照片),所以我可以在没有人定期登录的情况下提取内容(只要我存储后来获得的访问令牌)
让脚本位于http://www.example.com/HANDLER,该脚本将从请求中获取变量(因此facebook将在身份验证后重定向到http://www.example.com/HANDLER&code=YOUR_CODE)。您的处理程序需要提取代码变量,然后发送以下请求:
https://graph.facebook.com/oauth/access_token?
CLIENT_ID = YOUR_CLIENT_ID&安培;
REDIRECT_URI = http://www.example.com/oauth_redirect&
client_secret = YOUR_SECRET_KEY&安培;
代码= YOUR_CODE
此请求将返回一个形式为access_token = YOUR_ACCESS_TOKEN的字符串。
只需解析'access_token =',您就可以使用令牌来访问facebook图API, http://graph.facebook.com/me/friends?access_token=YOUR_ACCESS_TOKEN 这将返回包含所有朋友的JSON对象
希望这可以节省其他人一些不好玩的时间,因为文档很紧张。谢谢你的帮助!
答案 1 :(得分:2)
Facebook的API确实针对正在创建将被许多用户使用的应用程序的开发人员。
值得庆幸的是,新的Graph API比它的前任使用起来要简单得多,并且在不使用或创建大量底层基础架构的情况下使用它并不是非常困难。
你将需要实施授权,但这并不困难,只要你提示用户获取offline_access权限,它只需要完成一次。
此时Desktop Authentication上的文档可能与您最相关,尽管您可能希望在启动并运行Web应用程序后转到基于javascript的身份验证。
验证完成后,您所做的只是向各个网址发出GET请求并使用生成的JSON。
以下是有关活动的文档,您可以从User的朋友关系中获取朋友列表。
答案 2 :(得分:0)
我不是Facebook / Facebook Connect上的专家,但我已经看到它使用/使用了它的应用程序,似乎真的只有'官方'的方式来做它。我担心看起来你最好的选择可能就是这个。
http://wiki.developers.facebook.com/index.php/Connect/Authentication_and_Authorization
无论您如何“实际使用”它,您仍然需要授权应用程序连接到该帐户,这也意味着拥有Facebook应用程序。
答案 3 :(得分:0)
Facebook应用程序身份验证的答案很难找到,但实际上是在Graph API的“Analytics”页面中找到的。 指定以下内容:https://graph.facebook.com/oauth/access_token?client_cred&client_id=yourappid&client_secret=yourappsecret,您将获得一个access_token,您可以在所有其他呼叫中使用。
Facebook提供的API目前不提供此级别的功能。