40

好的,所以我用谷歌搜索了,我在 stackoverflow 上找到了线程,我已经检查了官方的 Facebook wiki 和.. 还有什么不是..

我现在希望你们中的一个人坐在 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 回答