TornadoにはFacebookOAuth2モジュールがありますが、その背後にあるアイデアはわかりません。例では壁から「ストリーム」を取得しますが、 Tornadoを使用してウォールに投稿する方法を確認したいので、別のPythonモジュールを見つけました。、しかしこれはOAuthを使用しませんが、別のキーが必要です:トークン。Facebookにアクセスして生成すると、2つのアプリケーションが提供されます。1つはTornadoから作成したもので、もう1つは「GraphAPIExplorer」です。 「これにより、「拡張アクセス許可」で長いキーを生成できましたが、それでも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:動作しました。データベースにトークンを保存することを検証するには、一定の時間を待つ必要があるようです。
だから私の質問はまだです:トルネードのトークンとOAuthアクセスの違いは何ですか?アプリケーションが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