Django/Python Facebook的OAuth2

2 投票
3 回答
4147 浏览
提问于 2025-04-17 08:38

关于Python的OAuth2和Facebook,有什么建议吗?

看起来自从Facebook更新到OAuth2后,相关的信息很少。

有没有办法让现有的Twitter库适用于Facebook的认证呢?

import oauth2 as oauth

# Create your consumer with the proper key/secret.
consumer = oauth.Consumer(key="your-twitter-consumer-key", 
    secret="your-twitter-consumer-secret")

# Request token URL for Twitter.
request_token_url = "http://twitter.com/oauth/request_token"

# Create our client.
client = oauth.Client(consumer)

# The OAuth Client request works just like httplib2 for the most part.
resp, content = client.request(request_token_url, "GET")
print resp
print content

3 个回答

0

如果你想获取用户的所有信息,或者想更深入地使用Facebook的图形API,可以看看这个链接:https://github.com/tschellenbach/Django-facebook

这里有个演示,展示它是多么好用:

http://www.fashiolista.com/intro_wide/

功能介绍(摘自github)

  • 可以通过以下方式访问Facebook API:
    • 你自己的网站(使用JavaScript的OAuth认证)
    • Facebook的画布页面(用于创建Facebook应用)
    • 手机(或者任何其他能提供有效访问令牌的方式)
  • Django用户注册(将Facebook用户数据转换为用户模型)
  • 使用Facebook的数据在你的Django应用中注册用户。通过开放图形API连接Facebook。
  • 支持Facebook FQL访问
  • 符合OAuth 2.0标准
  • 包含Open Facebook(一个稳定且经过测试的Python客户端,用于访问图形API)
1

有一个很棒的项目叫做 FandjangoFacepy。简单来说,你甚至不需要了解或者担心OAuth协议了。

4

如果你想找一些现成的Django应用来和你的项目结合,可以看看这个认证包。里面大多数提供Facebook认证的包已经更新,支持OAuth 2协议有一段时间了。

另一方面,如果你想直接通过OAuth 2库与某个提供商合作,可以看看python-oauth2——在它的README里有一个很详细的例子,教你如何和Django的认证系统快速集成。

撰写回答