2

我正在关注文档中的所有内容:http: //dev.twitter.com/pages/sign_in_with_twitter

我正在开发一个 Rails 应用程序,这就是我的代码的样子(下面的代码使用 oauth ruby​​ gem):

@consumer=OAuth::Consumer.new("key" , "secret", {:site=>"https://
api.twitter.com"})
@request_tok...@consumer.get_request_token(:oauth_callback =>
"#{SITE_BASE}/callback")
redirect_to
@request_token.authorize_url().gsub("authorize","authenticate")

生成的 URL 是: https ://api.twitter.com/oauth/authenticate?oauth_token=_REQUEST_TOKEN_

我已经登录到 twitter.com 并已授权该应用程序。但它显示授权屏幕:授权 Twoo Dev 使用您的帐户?

我所做的就是重新加载页面,它会将我带到我的应用程序的回调。

我也使用了omniauth gem并且遇到了同样的问题,因此我转向了oauth。

请提出可能出了什么问题。

问候,阿迪亚

以下是身份验证 url 的标头信息:

Response Headersview source
Date    Mon, 20 Jun 2011 00:48:13 GMT
Server  hi
Status  200 OK
X-Transaction
Etag    ""-gzip
X-Frame-Options SAMEORIGIN
Last-Modified   Mon, 20 Jun 2011 00:48:13 GMT
X-Runtime       0.06452
Content-Type    text/html; charset=utf-8
Pragma  no-cache
X-Revision      DEV
Expires Tue, 31 Mar 1981 05:00:00 GMT
Cache-Control   no-cache, no-store, must-revalidate, pre-check=0, post-
check=0
X-MID
Set-Cookie      lang=en; path=/ lang=en; path=/ _twitter_sess=;
domain=.twitter.com; path=/; HttpOnly
Vary    Accept-Encoding
Content-Encoding        gzip
Content-Length  2936
Keep-Alive      timeout=15, max=100
Connection      Keep-Alive 
4

2 回答 2

0

这是 Twitter 的一个错误。您应该在他们的问题跟踪器中提交错误报告。

于 2011-06-24T08:24:45.743 回答
0

最后我找到了问题和解决方法。

问题在于启用了直接消息访问的 Twitter 应用程序 API 帐户。

当您为应用程序的默认访问类型选择“读取、写入和直接消息”时。使用 twitter 登录失败,因为它在两者之间暂停以显示以下消息:

在 2011 年 6 月 30 日之前访问您的直接消息。

单击此处阅读有关该消息的更多信息

它没有在 twitter 开发网站、api 文档、文章等的任何地方说他们将暂停使用 twitter 流登录。

解决方案:将您的应用程序的“默认访问类型”选项移至“读取、写入和直接消息”以外的任何其他选项,这应该允许您的应用程序用户自动登录,而不必仅仅为了 Twitter 的缘故而查看授权屏幕通知。

好消息是,这个问题似乎应该在 6 月 30 日之后解决,一旦 twitter 不需要向其用户显示该消息,授权应用程序也需要直接消息访问。

于 2011-06-27T22:03:03.480 回答