我正在尝试建立一个连接到LinkedIn的网站,我知道我必须使用OAuth令牌来连接到它,而且我在LinkedIn developer站点上看到了这些例子,然而,它们都使用OAuth2库,而我所使用的站点使用的是rauth库,这似乎跳过了几个步骤。它已经集成了Twitter,所以我将包括下面的代码,以防有人不太理解我的意思。
twitter.py:
import json
from django.http import HttpResponse
from django.conf import settings
from rauth.service import OAuth1Service
def twitter(request, username):
twitter = OAuth1Service(
name='twitter',
consumer_key=settings.TWITTER_CONSUMER_KEY,
consumer_secret=settings.TWITTER_CONSUMER_SECRET,
request_token_url=settings.TWITTER_API_URL + 'oauth/request_token',
access_token_url=settings.TWITTER_API_URL + 'oauth/access_token',
authorize_url=settings.TWITTER_API_URL + 'oauth/authorize',
header_auth=True)
url = '{0}1/statuses/user_timeline.json?include_rts=false' \
'&exclude_replies=true&count=50&screen_name={1}'.format(
settings.TWITTER_API_URL, username)
r = twitter.request('GET', url, access_token=settings.TWITTER_USER_KEY,
access_token_secret=settings.TWITTER_USER_SECRET)
return HttpResponse(content=json.dumps(r.response.json),
status=r.response.status_code,
content_type=r.response.headers['content-type'])由于没有注释,我认为它向url发出了一个请求,该请求在发送时返回用户的时间线,但是为什么没有请求令牌创建或访问令牌创建?它有TWITTER_USER_KEY和TWITTER_USER_SECRET,但是rauth文档说您应该调用显式方法来获取令牌。我在这里错过了什么?
编辑:--我非常想使用rauth库,而不是干扰其他库。
发布于 2012-11-15 16:48:56
r = twitter.request('GET', url, access_token=settings.TWITTER_USER_KEY,
access_token_secret=settings.TWITTER_USER_SECRET)函数twitter创建一个OAuth1Service并返回对象。上面的代码请求用户时间线,并且访问令牌和秘密似乎存在于设置对象中。可能是用于获取访问令牌和秘密的身份验证例程位于其他地方。
使用库的一个典型示例(直接取自rauth文档http://packages.python.org/rauth/)
service = OAuth1Service(
name='example',
consumer_key='123',
consumer_secret='456',
request_token_url='http://example.com/request_token',
access_token_url='http://example.com/access_token',
authorize_url='http://example.com/authorize')
request_token, request_token_secret = service.get_request_token()
authorize_url = service.get_authorize_url(request_token)将授权URL传递给浏览器,以便将用户重定向到oAuth提供者的网站,用户可以授予应用程序的权限,然后重定向到客户端,然后发送下面的请求以获得访问令牌,使用该令牌可以发出获取数据的请求。
response = service.get_access_token(method='GET'
request_token=request_token,
request_token_secret=request_token_secret)
request_token, request_token_secret = service.get_request_token()快乐编码:)
https://stackoverflow.com/questions/13103154
复制相似问题