-1

Tornado中有Facebook OAuth2模块,但我不明白它背后的想法:该示例将从我的墙上获取“流”,但是因为我想看看如何使用Tornado在 wal 上发布,我找到了另一个 Python 模块,但是这个不使用OAuth,但需要另一个密钥:一个Token,当我去Facebook并生成它时,它给了我两个应用程序:我从 Tornado 创建的一个,第二个是“Graph API Explorer " 这让我可以在 "Extended Permission" 中生成一个长密钥,但我仍然无法在我的Facebook Wall 上发帖。

更新:这是与 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 用户时使用通知(将更新发布在页面的墙上以供该页面的用户看到)

更新3: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
4

1 回答 1

-1

很抱歉问它,现在我认为它有所不同:

由于令牌有时间限制,因此管理员每次生成它都是一项艰巨的任务,这就是 Tornado 所做的,它每次访问都要求令牌,所以它会得到刷新的令牌。

self.facebook_request("/me/home", self._on_stream, access_token=self.current_user["access_token"])

所以它每次都得到令牌。

再次感谢,再次抱歉。

于 2012-09-27T11:29:41.673 回答