0

私は、GoogleAppEngineで構築したバックエンドを介してリーダーボードといくつかのソーシャルインタラクションを維持するiPhoneゲームに取り組んでいます。ユーザーはiPhoneアプリのFacebookからログインできます。アプリは、アクセストークンを含むいくつかのユーザーの詳細をHTTPPOSTを介してGoogleAppEngineアプリに送信します。

リクエストを受信したハンドラーは、アクセストークンを使用してユーザーの友達を取得しようとします。ここでGithubにあるpythonforfacebookSDK(以前に成功した)を使用しています:

https://github.com/pythonforfacebook/facebook-sdk

私のGAEアプリに関連するPythonコードは次のとおりです。

def post(self):
    at = self.request.get('at')
    user = User.get_by_key_name(uid)
    if not user: #create previously unknown user
        logging.info('Entered unknown user code')
        logging.info(at)
        logging.info(type(at))
        graph = facebook.GraphAPI(at) 
        facebook_user = graph.get_object("me")
        friends = graph.get_connections(facebook_user["id"], "friends")

ロギングコマンドは、適切なアクセストークンのように見えるものを出力し、タイプが「Unicode」であることを示します。logging.infoが出力するアクセストークンをGAEログにコピーして、Facebookアクセストークンデバッガーに貼り付けると、次の出力が得られます。

アプリID:プライバシーのために削除されましたが、正しく見えます

メタデータ:{"sso": "iphone-safari"}

ユーザーID:プライバシーのために削除されましたが、正しく見えます

発行:1345405177(10分前)

有効期限:決して

有効:True

起源:モバイルWeb Faceweb

スコープ:offline_access read_stream

pythonforfacebookの最新の投稿バージョンを使用するようにコードを更新しましたが、違いはありませんでした。どんなアイデアでも大歓迎です。

ありがとう、

デセ

4

1 に答える 1

0

ユーザーの友達を作るには、pythonforfacebookSDKがなくても簡単に行うことができます。

https://graph.facebook.com/<username or ID>/friends?access_token=<your token>

そのリンクは、JSON形式でユーザーの友達を提供します。したがって、インポートurllib2してjson実行できる場合は、次のようになります。

response = urllib2.urlopen(<url above>)
friendsString = response.read()
friends = json.loads(friendsString )

次に、すべての友達を含むdictfriendsになります。

于 2012-08-19T23:38:38.010 に答える