1

我最近接管了对使用 rauth 连接到linkedin 的应用程序的支持。失败的代码是:

    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 中的更改。这些大多很小,部分原因是迁移到 Requests v1.0.0,它的 API 发生了许多重大变化。

您应该阅读升级指南。此外,还有许多工作示例

最后,这个特定的错误表明传入了一个意外的参数,即oauth_callback. 这是因为 rauth 只是 Requests 的包装器。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 回答