3

LinkedIn に接続する Web サイトを取得しようとしています。OAuth トークンを使用して接続する必要があることはわかっています。また、LinkedIn 開発者サイトで例を見てきましたが、それらはすべて OAuth2 ライブラリとそのサイトを使用しています。私は rauth ライブラリを使用していますが、これはいくつかの手順をスキップしているようです。すでに 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 ライブラリを使用したいだけで、他のライブラリにも干渉したくありません。

4

1 に答える 1

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 プロバイダーの Web サイトにリダイレクトされ、ユーザーはアプリケーションにアクセス許可を付与し、その後クライアントにリダイレクトされます。以下のリクエストを送信して、どのリクエストを使用してアクセス トークンを取得できますか?フェッチデータを作成できます。

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

ハッピーコーディング:)

于 2012-11-15T16:48:56.947 に答える