2

ドキュメントのすべてに従っています: http://dev.twitter.com/pages/sign_in_with_twitter

私はレールアプリに取り組んでおり、これは私のコードがどのように見えるかです(以下のコードは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 に答える