Twitter oauth_callback参数被忽略!

rom*_*iem 8 twitter url oauth callback

我正在尝试在我的ASP.NET站点上运行Twitter身份验证.当您在Twitter网站上创建应用程序时,您必须指定一个回调URL,为了参数,我已将其设置为http://mydomain.com

我读过的OAuth 1.0a的规范,并与自己的自定义一个重写这个回调URL,你必须送oauth_callback参数在request_token阶段(网址编码,当然).

所以我的请求URL看起来像这样:

http://twitter.com/oauth/request_token?oauth_callback=http%3A%2F%2Fmydomain.com%2Ftwittercallback

据推测,如果一切按计划进行,在您的响应数据中,除了令牌和令牌密钥参数之外,您还应该收到oauth_callback_confirmed = true的新参数.

但是,我的回答是:oauth_token = MYTOKEN&oauth_token_secret = MYTOKENSECRET

我知道我没有给你们最多的人继续,但我知道为什么我没有收到oauth_callback_confirmed参数.如果没有这个,我的应用程序会默认返回到Twitter网站上硬编码的回调URL.如果有人能帮助我,我将永远感激不尽!

谢谢.

jsh*_*jsh 9

我读过的OAuth 1.0a的规范,并与自己的自定义一个重写这个回调URL,你必须送oauth_callback参数在request_token阶段(网址编码,当然).

所以我的请求URL看起来像这样:

http://twitter.com/oauth/request_token?oauth_callback=http%3A%2F%2Fmydomain.com%2Ftwittercallback

只因为你阅读规范并不意味着TWITTER阅读它.:P

开玩笑 - 这基本上是正确的 - 但是Twitter喜欢接收这些数据的方式有点不同(并没有很好地记录).

我发现获得oauth_callback确认的方式如下:在请求函数的参数中指定oauth_callback,而不是在URL中.

python示例(使用oauth2):

''' Create our client.'''

client = oauth.Client(consumer)

''' do the request '''

resp, content = client.request(request_token_url,"POST",body=urllib.urlencode({'oauth_callback':callbackURL}))


''' note that it's called "body" in this particular OAuth function for Client but in OAuth Request object it's called "parameters."  YMMV depending on programming language/ library of course. '''
Run Code Online (Sandbox Code Playgroud)

这也是我成功获得oauth 验证器的唯一方法.据说每次都不应该指定回调网址,因为我们在应用程序设置中提供它...但经验似乎表明不是这样.

最后,请注意,在第3段你必须做同样的事情 - 这次包括oauth_verifier以及参数中的回调URL.

希望这会有所帮助 - 无法开始告诉你我付出了多少努力来解决这个问题.

祝好运!

Ĵ


ame*_*vin 1

我已使用本指南将我的电脑设置为用作回调位置。基本上,您以某种方式设置主机文件,清除缓存并添加几个 Firefox 注册表值。最后,当您调试 oauth 调用时,重定向将返回到您的本地 PC。

正如我所说,这对我有用。