我最近接受了使用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'
你能指点一些能帮助我重新构建这个的doc / examples吗?
-Jim
答案 0 :(得分:1)
听起来你正在使用比原作者更晚的版本。您需要修改代码以符合rauth API中的更改。这些内容大多数都很小,部分原因是需要迁移到Requests v1.0.0,其API有许多重大变化。
您应该阅读upgrade guide。此外还有一些working examples。
最后,此特定错误表示传入了意外参数,即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})
希望有所帮助!