web-dev-qa-db-ja.com

Python-Facebook API-実例が必要

OK、だから私はグーグルで探しました、私はここでstackoverflowのスレッドを見つけました、そして公式のFacebookウィキをチェックしました..そしてそうではない..

PythonのFacebook APIサンプルコードに皆さんの1人が座ることを望みます。これは私がこれまでに得たものであり、私が得るのは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がほとんど機能している場合)私にとってはそうではありません。

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

39
Torxed

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
69
dom