私はfacepyfacebookグラフAPIを使用してメールボックス/メッセージにアクセスしており、次の2つのアプローチに従いました。
最初のアプローチ:
access token
Facebookページから取得したものを使用Graph Explorer
し、以下のコードを使用しました。
from facepy import GraphAPI
graph = GraphAPI(token)
print graph.get('/me')
#Rest of the code
上記のコードは正常に機能し、を使用してすべてのメッセージを取得できましたFQL Query
。しばらくしてauth_tokenexpired
を実行すると、問題が発生しました。
それで、いくつかのグーグルの後、私は2に近づくようにシフトしました:
さて、私がやったことは、Facebookアプリがread_mailbox
許可を与えてそれを取得しid and key
、次にfacepyのget_application_access_tokenメソッドを使用してトークンを取得することでした。
使用したトークンを取得した後:
token = facepy.utils.get_application_access_token(app_id, key)
graph.get('/me')
## OUT: OAuthError: [2500] An active access token must be used to query information about the current user.
facepy.utils.get_extended_access_token(token, app_id, key)
# OUT: OAuthError: [1] No user access token specified
commented #
これで、アプリケーショントークンの使用時に生成されたerror()を確認できます。
私が得ているエラーは、Facebookがを必要user_token
とし、私がそれを提供しているためだと思いますapp_token
。
それで、app_tokenを使用してユーザーデータにアクセスすることは可能ですか?そうでない場合は、ユーザーデータにアクセスできるを発行する方法はありますかextended token
?
アップデート:
それで、私は@Johannesの提案に従い、これを試しましたが、エラーが発生しました:
from facepy.utils import get_extended_access_token
from facepy import GraphAPI
token = "My user access token got from https://developers.facebook.com/tools/explorer"
long_lived_access_token = get_extended_access_token(token)
graph = GraphAPI(long_lived_access_token)
graph.get('/me')
さて、上記のコードを実行すると、
TypeError: get_extended_access_token() takes exactly 3 arguments (1 given)
だから、私はそれをに変更してlong_lived_access_token = get_extended_access_token(token, None, None)
得ました
facepy.exceptions.OAuthError
それで、もう一度に変更しましたlong_lived_access_token = get_extended_access_token(token, app_id, key)
が、上記と同じ例外/エラーが発生しました。
それで、これはバグですか、それとも私は何か間違ったことをしていますか?
PS:gitから最新バージョンをインストールしました。