40

わかりましたので、グーグルで検索しました。ここでスタックオーバーフローのスレッドを見つけました。公式の Facebook wiki をチェックしました。

そのうちの 1 人が Python 用の Facebook API サンプル コードに座っていることを願っています。これは私がこれまでに得たものであり、私が得るのはPyFacebook経由の「無効な署名」だけで、これは死んだプロジェクトのようです:

from facebook import Facebook

api_key = '123456789______'
secret  = '<proper secret key>'
OTK = 'XXXXX' # <-- You get this from: https://www.facebook.com/code_gen.php?v=1.0&api_key=123456789______
long_term_key = None

fb = Facebook(api_key, secret)

def generate_session_from_onetime_code(fb, code):
    fb.auth_token = code
    return fb.auth.getSession()
if not long_term_key:
    long_term_key = generate_session_from_onetime_code(fb, OTK)['session_key']
    print 'Replace None with this in the .py file for long_term_key:'
    print long_term_key

fb.session_key = long_term_key
fb.uid = 000000001  # <-- Your user-id
fb.signature = api_key # <-- This doesn't work at all, MD5 of what?
#fb.validate_signature(fb) # <-- doesn't work either, prob need to pass MD5 handle?
print fb.friends.get() # <-- Generates "Invalid Signature"

「すべて」私が望むのは、今のところ友達リストを取得することです。より良いAPIがあれば、正しい方向に私を向けますが、Facebookは公式に独自のPython SDKが死んでいると宣言し、pyfacebookはほとんど私のために働いていますが、完全ではありません..

だから、助けてください。

4

1 に答える 1

70

Python sdkの非公式フォークは、まだ問題なく動作しています。

友達を取得するには、 https ://developers.facebook.com/tools/access_token/ でアクセス トークンを生成します。

制限:

  • 現在の人の友達を表示するには、user_friends 権限を持つユーザー アクセス トークンが必要です。
  • これは、リクエストを行ったアプリを (Facebook ログイン経由で) 使用した友人のみを返します。
  • その人の友達が user_friends パーミッションを拒否した場合、その友達はこの人の友達リストに表示されません。

コード

import facebook

token = 'your token'

graph = facebook.GraphAPI(token)
profile = graph.get_object("me")
friends = graph.get_connections("me", "friends")

friend_list = [friend['name'] for friend in friends['data']]

print friend_list
于 2012-07-16T19:48:24.103 に答える