Documentation for the Python oath2
library提供了一个如何向Twitter进行身份验证的简单示例:
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
但是,如何指定额外参数?例如,Facebook要求“范围”参数来请求诸如电子邮件地址之类的数据。此外,是否有使用除Twitter之外的其他提供商的示例,如Facebook或Google OAuth2?
答案 0 :(得分:1)
通过查看oath2
lib的代码,client.request()
可以添加其他参数:
def request(self, uri, method="GET", body='', headers=None,
redirections=httplib2.DEFAULT_MAX_REDIRECTS, connection_type=None):
...
if is_form_encoded and body:
parameters = parse_qs(body)
else:
parameters = None
似乎body
参数将被解析为参数。我从fb开发站点复制以下fb oauth请求示例。我认为在?
之后添加包含scope参数的部分作为body
参数应该正常工作。
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URI
&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
&state=SOME_ARBITRARY_BUT_UNIQUE_STRING
答案 1 :(得分:0)
参数可以是元组列表,例如:
[("language","pt")]