我最近接管了对使用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”

您能指出一些文档/示例来帮助我重新构建该文档吗?

-吉姆

最佳答案

听起来您使用的是rauth而不是原始作者的更高版本。您将需要修改代码以符合rauth API中的更改。这些大多很小,部分原因是迁移到Requests v1.0.0所必需,该版本的API进行了许多重大更改。

您应该阅读upgrade guide。此外,还有许多working examples

最终,此特定错误指示传入了意外参数,即oauth_callback。这是因为rauth只是请求的包装。请求不知道如何处理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})


希望有帮助!

07-24 19:15