龙卷风中的令牌和Oauth访问有什么区别

时间:2012-09-27 09:22:08

标签: python facebook-graph-api oauth-2.0 tornado

Tornado 中有 Facebook OAuth2 模块,但我不明白这背后的想法: 该示例将从我的墙上获取“stream”,但因为我想看看如何使用 Tornado 在wal上发布,我找到了another Python module,但是这个不使用 OAuth ,但需要另一个键:令牌,当我去 Facebook 并生成它时,它会给我两个应用程序:我从Tornado创建的那个,第二个是“Graph API Explorer”,它允许我在“扩展权限”中生成一个长密钥,但我仍然无法发布在我的 Facebook 上壁。

更新:这是使用Python-Facebook模块的代码:

import facebook

graph=facebook.GraphAPI("____")
profile = graph.get_object("me")
graph.put_object("me", "feed", message="I am writing on my wall!")
print profile

并给我这个错误:

facebook.GraphAPIError: Error validating access token: This may be because the user logged out or may be due to a system error.

Update2:它有效,似乎我必须等待一段时间来验证将令牌保存在他们的数据库中?

所以我的问题仍然是:Tornado中Token和OAuth Acces之间的区别是什么。因为我计划在每次应用程序更新Facebook用户时使用通知(在页面的墙上发布更新以供该页面的用户查看)

Update3:似乎Facebook不允许在一段时间内发布多个帖子,否则我收到错误:

Traceback (most recent call last):
File "C:\Users\toto\Desktop\tooooooooooorfacebook.py", line 5, in <module>
graph.put_object("me", "feed", message="this is a test")
File "C:\Python27\lib\site-packages\facebook.py", line 140, in put_object
post_args=data)
File "C:\Python27\lib\site-packages\facebook.py", line 298, in request
raise GraphAPIError(response)
facebook.GraphAPIError: (#506) Duplicate status message

1 个答案:

答案 0 :(得分:-1)

很抱歉这个问题,现在我觉得它有所不同:

由于令牌有时间限制,所以每次由管理员生成它都是一项艰巨的任务,这就是Tornado所做的,它要求每次访问令牌,所以它将获得刷新的。 / p>
self.facebook_request("/me/home", self._on_stream, access_token=self.current_user["access_token"])

所以它每次都会获得令牌。

再次感谢你,再次抱歉。