Facebook Graph APIキーエラー
質問
FacebookのログインでPython AppEngineアプリケーションに取り組んでいます。ログインユーザーの友達のBIOS(私についての情報)にアクセスできるようになりたいです。
Facebook開発者のダッシュボードで必要なすべての権限に対する変更/保存された変更をした場合、私はこのような電話を成功させることができます:
friends = graph.get_connections("me", "friends", fields="name")
for friend in friends["data"]:
print friend["name"]
.
しかし、 docs 、キーエラーになる:
friends = graph.get_connections("me", "friends", fields="name,bio")
for friend in friends["data"]:
print friend["bio"]
.
ローカルホストで実行中のappEngineログ:
File "/Users/nicole/aggie-harmony/main.py", line 154, in get
user = self.current_user
File "/Users/nicole/aggie-harmony/main.py", line 108, in current_user
bio = friend["bio"]
KeyError: 'bio'
INFO 2013-11-16 02:59:27,243 module.py:608] default: "GET / HTTP/1.1" 500 -
.
私は他のフィールドを試してきました、そしてそれが重要なエラーを必要とするものはすべて重要なエラーを生成するものはあります(この質問が投稿された前に実際には単に更新されているようです... 「私のテストユーザーでは、公共の可視性に明示的に設定されている他のフィールドもアクセスできません」...私のテストユーザーでは、Bioは実際には公開されています!)
構文を賢明に欠けていない限り、これは確かにトークンの問題ですか?私のアプリは例に基づいていますと基本的には、このようなアクセストークンを取得/使用します(AUTH STUFCEが以前に生成され、独自のファイルに保存されています)。
...
cookie = facebook.get_user_from_cookie(self.request.cookies, auth.FACEBOOK_APP_ID,
auth.FACEBOOK_APP_SECRET)
...
graph = facebook.GraphAPI(cookie["access_token"])
...
.
をサポートする可能性があります。 解決
解決策:それは確かに許可の問題でした。私の適応型のHTMLファイルでは、これを変更する必要がありました。
function doLogin() {
FB.login(function(response) {} , {perms:''});
}
.
...これに:
function doLogin() {
FB.login(function(response) {} , {perms:'user_about_me,friends_about_me,user_likes,friends_likes,user_relationship_details,friends _relationship_details,user_relationships,friends_relationships, user_education_history, friends_education_history'});
}
.
Facebookは適切なOAuthダイアログなどで残りの面倒を見ます。
所属していません StackOverflow