質問

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ダイアログなどで残りの面倒を見ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top