0

Ruby sinatra アプリで Facebook を使用してシングル サインオンを実装しようとしています。これまでのところ、私はこのチュートリアルに従っています:

http://jaywiggins.com/2010/05/facebook-oauth-with-sinatra/

ユーザーがアプリケーションに接続するためのリクエストを送信できますが、実際にアクセス トークンを「取得」するのに問題があります。ユーザーは問題なく接続でき、アクセストークンを交換するために使用するはずの「コード」パラメーターを含む応答を受け取りますが、ここで行き詰まります。

したがって、次のパラメーターを使用して URL を送信します。

https://graph.facebook.com/oauth/access_token/ {client_id}&{client_secret}&{code}&{redirect_uri}

上記の中括弧内の単語は、明らかに値に置き換えられます。

次のコードを使用してこれを送信します。

response = open(url)

これは、アクセストークンの方法で使用するものを何も返していないようです (これには、上で送信した URL である @base_uri と、他のいくつかのパラメーターがありますが、有用なものは何もありません)。ただし、送信した URL を取得してブラウザーに貼り付けると、アクセス トークンが返されます。

Facebookからリクエストを取得してアクセストークンを引き出す方法を誰か教えてもらえますか?

ありがとう。

4

1 に答える 1

0

を使用していると仮定するopen-uriと、いくつかの拡張子を持つファイル ハンドルが返されるはずです。

つまり、ファイル ハンドルのように読み取ることで、応答の本文を取得できます。

body = response.read

次に、おそらく json を解析してアクセス トークンを取得します。

require 'json'
JSON.parse(body)['access_token']
于 2010-06-12T21:54:16.493 に答える