首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python-oauth2和Yahoo的Fantasy Sports API的问题

python-oauth2和Yahoo的Fantasy Sports API的问题
EN

Stack Overflow用户
提问于 2010-10-27 02:28:17
回答 2查看 3.1K关注 0票数 3

我正在尝试建立一个网络应用程序,从雅虎的API抓取梦幻体育信息。我知道它需要使用OAuth才能与应用程序接口通信。它是使用Flask创建的,并将在Google App Engine上运行。

我一直在尝试使用SimpleGeo的人提供的python-oauth2,当我尝试做开发工作时,我总是得到相同的错误。下面是一段代码:

代码语言:javascript
复制
import oauth2 as oauth

consumer = oauth.Consumer(key=settings.OAUTH_CONSUMER_KEY, secret=settings.OAUTH_SHARED_SECRET)
request_token_url = "https://api.login.yahoo.com/oauth/v2/get_request_token"
client = oauth.Client(consumer)

resp, content = client.request(request_token_url, "GET")

下面是我得到的错误响应:

{'status':'401','transfer-encoding':'chunked','connection':'close','date':'Tue,26 Oct 2010 18:24:16 GMT','p3p':'policyref="http://info.yahoo.com/w3c/p3p.xml",CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"','content-type':‘应用程序/x-www-form-urlencoded’,‘’www authenticate‘:'OAuth oauth_problem=consumer_key_rejected'}

现在,我已经阅读了雅虎提供的文档,我被难住了,因为(a)它看起来太简单了,(b)我找不出哪里错了。我使用的是雅虎提供给我的消费者密钥和共享密钥。

这是我第一次使用OAuth,任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-17 14:26:26

正如kanaka指出的那样,雅虎的get_access_token调用需要oauth_callback,而simplegeo/oauth2不允许您轻松地指定它。

以下是几个变通方法:

不使用simplegeo/python-oauth2,而是使用zbowling/python-oauth2 (它是simplegeo的分支,但包含一些很好的新代码和错误修复),然后添加一个额外的参数:

代码语言:javascript
复制
parameters={'oauth_callback': 'http://example.com/callback/'}

添加到Client.request调用。如下所示:

代码语言:javascript
复制
client = Client(consumer)
client.request('https://api.login.yahoo.com/oauth/v2/get_request_token',
               method='GET',
               parameters={'oauth_callback': 'http://example.com/callback/'})

如果您坚持使用simplegeo/python-oauth2,那么可以在this page上查看关于simplegeo/oauth2和yahoo oauth问题的详细讨论。它有一些你可以使用的代码片段。

票数 6
EN

Stack Overflow用户

发布于 2010-10-31 04:06:35

我刚刚尝试使用python-oauth2 (simplegeo's),也遇到了同样的问题。

simplegeo实现的一个问题是,很容易在请求令牌请求中提供oauth_callback,根据这一点,它是必需的:http://developer.yahoo.com/oauth/guide/oauth-requesttoken.html

但是,即使我强制“oob”,我仍然有问题。

你可以试试雅虎自己的python库,看看是否有帮助(然后在这里发布你找到的东西):http://github.com/yahoo/yos-social-python。我是从这里找到的:http://developer.yahoo.com/social/sdk/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4026759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档