1

最近、rauth を使用してリンクトインに接続するアプリのサポートを引き継ぎました。失敗しているコードは次のとおりです。

    self.linkedin= OAuth1Service(                                                     
        name='linkedin',                                                          
        consumer_key=self._consumer_key,                                              
        consumer_secret=self._consumer_secret,                                       
        request_token_url=self.request_token_url,      
        access_token_url=self.access_token_url,        
        authorize_url=self.authorize_url)          

    self.request_token, self.request_token_secret = \
                        self.linkedin.get_request_token(method='GET',
                        oauth_callback=self.callback_url)

アプリの所有者によると、これは以前は機能していましたが、現在は次のようになっています。

TypeError: request() が予期しないキーワード引数 'oauth_callback' を取得しました

これを再構築するのに役立つドキュメント/例をいくつか教えてもらえますか?

-ジム

4

1 に答える 1

1

元の作成者よりも新しいバージョンの rauth を使用しているようです。rauth API の変更に合わせてコードを修正する必要があります。これらはほとんどが小さく、API に多くの重大な変更があった Requests v1.0.0 への移行によって部分的に必要になりました。

アップグレード ガイドを読む必要があります。さらに、多数の実用的な例があります。

最後に、この特定のエラーは、予期しないパラメーター、つまり が渡されたことを示していますoauth_callback。これは、rauth がリクエストの単なるラッパーであるためです。Requests は をどうするかわかりませんoauth_callback。代わりに、ネイティブのリクエストの API を使用して、この場合はparamsパラメーターを介して渡す必要があります。

linkedin = OAuth1Service(name='linkedin',                                                          
                         consumer_key=consumer_key,                                              
                         consumer_secret=consumer_secret,                                       
                         request_token_url=request_token_url,      
                         access_token_url=access_token_url,        
                         authorize_url=authorize_url)          

request_token, request_token_secret = \
    linkedin.get_request_token(method='GET',
                               params={'oauth_callback': callback_url})

それが役立つことを願っています!

于 2013-05-14T14:14:17.213 に答える