6

Python で Fcebook のウォールに何かを投稿する簡単なプログラムを作成しようとしています。pythonforfacebook のこの例を使用してみました:

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

デベロッパーセンターに行ってアプリを作ってみました。「アプリを Facebook と統合する方法を選択してください」については、「Facebook ログインを使用した Web サイト」を選択しました (実際には Web サイトを持っていません。Facebook ウォールに投稿するプログラムを持っているだけですが、これが一致する最も近いオプションです)私がしたいこと...)。

ただし、これを実行すると、次のように表示されます。

$ python a.py 
Traceback (most recent call last):
  File "a.py", line 7, in <module>
    graph.put_object(me, "feed", message="I am writing on my wall!")
  File "/usr/lib64/python2.7/site-packages/facebook.py", line 140, in put_object
    post_args=data)
  File "/usr/lib64/python2.7/site-packages/facebook.py", line 298, in request
    raise GraphAPIError(response)
facebook.GraphAPIError: (#200) The user hasn't authorized the application to perform this action

ユーザーとしてログインしてアプリを承認するにはどうすればよいですか? 私は正しいアプローチを取っていますか?私は実際にはウェブサイトを持っていません。私はプログラムを持っているだけです。ウェブサイトのフィールドに文字通り「http://google.com」と入力したところ、うまくいきました。

4

3 に答える 3

3

ウォールに投稿する権限 (具体的には、「publish_actions」権限) を持つ新しいトークンを取得することで機能させました。これを行うには、Graph API Explorerを使用し、ドロップダウン メニューでアプリケーションを選択し、[Get Access Token] を押して、[publish_actions] をオンにしました。唯一の問題は、トークンが 1 時間後に期限切れになることです。

于 2013-09-09T18:29:42.647 に答える
2

ウォールに投稿するには、ユーザーにpublish_action/許可を与える必要があります。publish_stream


  • あなたの唯一の仕事が壁に投稿する/基本的な情報を取得することである場合; アプリを承認したら、アクションを実行するためにユーザー アクセス トークンの代わりにAPP アクセス トークンを使用できます。アプリ アクセス トークンを取得するには、以下を使用できます。

    GET /oauth/access_token?
      client_id={app-id}
      &client_secret={app-secret}
      &grant_type=client_credentials
    

    または、ここから直接。ただし、アプリでハードコーディングしないでください (セキュリティ上の理由から)。

  • または、ユーザーに代わって他のアクションも実行する場合は、ユーザー トークンの有効期間を 2 か月に延長できます。詳しくはこちらをお読みください

于 2013-09-10T06:13:42.933 に答える