用rauth连接到LinkedIn API

时间:2012-10-27 18:55:21

标签: python api oauth linkedin rauth

我正在尝试建立一个连接到LinkedIn的网站,我知道我必须使用OAuth令牌连接到它,我已经在LinkedIn开发者网站上看过这些示例,但是,他们都使用了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发出请求,该请求在发送时返回用户的时间轴,但是为什么没有请求令牌创建 OR 访问令牌创建?它有TWITTER_USER_KEYTWITTER_USER_SECRET,但是rauth文档说你应该调用显式方法来获取令牌。我在这里缺少什么?

编辑:我非常想使用rauth库,而不是插手其他库。

1 个答案:

答案 0 :(得分:3)

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()

快乐编码:)