私は、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の最新の投稿バージョンを使用するようにコードを更新しましたが、違いはありませんでした。どんなアイデアでも大歓迎です。
ありがとう、
デセ