-1

OmniAuth を使用してfoursquareに接続しようとしています。RailsCast: 241: Simple OmniAutの指示に従いました。

SessionController を使用してYAMLで応答を発生させ、コードをHerokuにデプロイする部分で停止しました(ローカル マシンを使用するとまったく機能しないことがわかりました)。

ただし、YAML 構造化ページを表示する代わりに、次の URL を取得します。

http://XX-sunset-XX.heroku.com/auth/foursquare/callback?code=10LBOAEUQQNRZ01CLRYUC0FBFZAFGFYUDVOGVE51HO3BZBXX

(HTML 形式、Heroku のデフォルトのエラー処理だと思います):

We're sorry, but something went wrong.
We've been notified about this issue and we'll take a look at it shortly.

どうしたの?

Heroku リンク

以下は、Heroku からのトレースです。

2011-06-01T08:18:59+00:00 app[web.1]:
2011-06-01T08:18:59+00:00 app[web.1]:
2011-06-01T08:18:59+00:00 app[web.1]: Started GET "/test/index" for 211.23.144.132 at Wed Jun 01 01:18:59 -0700 2011
2011-06-01T08:18:59+00:00 app[web.1]:   Processing by TestController#index as HTML
2011-06-01T08:18:59+00:00 app[web.1]: Rendered test/index.html.erb within layouts/application (2.3ms)
2011-06-01T08:18:59+00:00 app[web.1]: Completed 200 OK in 3ms (Views: 3.0ms | ActiveRecord: 0.0ms)
2011-06-01T08:18:59+00:00 heroku[router]: GET simple-sunset-248.heroku.com/test/index dyno=web.1 queue=0 wait=0ms service=11ms bytes=1603
2011-06-01T08:18:59+00:00 app[web.1]:
2011-06-01T08:18:59+00:00 app[web.1]:
2011-06-01T08:18:59+00:00 app[web.1]: Started GET "/stylesheets/all.css" for 211.23.144.132 at Wed Jun 01 01:18:59 -0700 2011
2011-06-01T08:18:59+00:00 app[web.1]:
2011-06-01T08:18:59+00:00 app[web.1]: ActionController::RoutingError (No route matches "/stylesheets/all.css"):
2011-06-01T08:18:59+00:00 app[web.1]:
2011-06-01T08:18:59+00:00 app[web.1]:
2011-06-01T08:18:59+00:00 app[web.1]:
2011-06-01T08:18:59+00:00 heroku[router]: GET simple-sunset-248.heroku.com/stylesheets/all.css dyno=web.1 queue=0 wait=0ms service=5ms bytes=922
2011-06-01T01:19:00-07:00 heroku[nginx]: GET /stylesheets/all.css HTTP/1.1 | 211.23.144.132 | 953 | http | 404
2011-06-01T08:19:04+00:00 app[web.1]:
2011-06-01T08:19:04+00:00 app[web.1]:
2011-06-01T08:19:04+00:00 app[web.1]: Started GET "/auth/foursquare" for 211.23.144.132 at Wed Jun 01 01:19:04 -0700 2011
2011-06-01T08:19:04+00:00 heroku[router]: GET simple-sunset-248.heroku.com/auth/foursquare dyno=web.1 queue=0 wait=0ms service=6ms bytes=1032
2011-06-01T01:19:05-07:00 heroku[nginx]: GET /auth/foursquare HTTP/1.1 | 211.23.144.132 | 1062 | http | 302
2011-06-01T08:19:14+00:00 app[web.1]:
2011-06-01T08:19:14+00:00 app[web.1]:
2011-06-01T08:19:14+00:00 app[web.1]: Started GET "/auth/foursquare/callback?code=4GU3FEFI2Z3JB40ZDZC5EFOF2XG2LOAKRZJWQY041CDDJ5XS" for 211.23.144.132 at Wed Jun 01 01:19:14 -0700 2011
2011-06-01T08:19:14+00:00 app[web.1]:
2011-06-01T08:19:14+00:00 app[web.1]: OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
2011-06-01T08:19:14+00:00 app[web.1]:
2011-06-01T08:19:14+00:00 app[web.1]:
2011-06-01T08:19:14+00:00 app[web.1]:
2011-06-01T08:19:14+00:00 heroku[router]: GET simple-sunset-248.heroku.com/auth/foursquare/callback dyno=web.1 queue=0 wait=0ms service=15ms bytes=934
2011-06-01T01:19:15-07:00 heroku[nginx]: GET /auth/foursquare/callback?code=4GU3FEFI2Z3JB40ZDZC5EFOF2XG2LOAKRZJWQY041CDDJ5XS HTTP/1.1 | 211.23.144.132 | 965 | http | 500
4

1 に答える 1

1

私は Ruby も Ruby on Rails も使用していませんが、 Foursquare Dev OAuth Docの OAuth ドキュメントによると、 foursquare はOAuth 2.0標準を標準的な方法で実装していないようです。多くの実装された OAuth ライブラリが使用している標準パラメータ (たとえば、" " v. " ") を使用していません。client_IDoauth_consumer_key

上に表示されているのは、必要なアクセス トークンを取得するために解析して送り返す必要があるresponse_type=codeパラメーター「code=4GU3FEFI2Z3JB40ZDZC5EFOF2XG2LOAKRZJWQY041CDDJ5XSAPI 呼び出し用。

さらにドキュメントの Ajax の例では、応答のパラメータとして" "response_type=tokenを与える" " を使用できることが示されています。access_token=ACCESS_TOKEN

これが少し役立つことを願っています。幸運を。

于 2011-06-07T19:01:07.560 に答える