さて、私は自分の質問に答えています。
Facebook SDKを使用すると、SSO はデバイス上で非常にうまく機能しますが、受け取るトークンは、Rails アプリで受け取るものと同じではありません。どうやら Facebook は、サポートに応じて異なるトークンを作成します。
Android デバイスでトークンを受け取ったら、次の URL を介して Rails アプリに送信します。
http://myapp/check_mobile_login?token=FB_MOBILE_TOKEN
これは、fb_graph gem でトークンを使用してユーザー データを取得するアプリケーション コントローラーによってキャッチされます。トークンが有効であれば、いくつかの情報を受け取ります。次に、データベースを確認し、同じ UID が見つかった場合、ユーザーは認証され、Devise から Authentificable_token を送り返します。
そしてドラフトコード:
def check_mobile_login
token = params[:token]
user = FbGraph::User.me(token)
user = user.fetch
logged = User.find_by_uid(user.identifier)
respond_to do |format|
format.html # index.html.erb
format.json { render :json => logged.authentication_token }
end
end
誰かがより良い解決策を持っているなら、私はそれを聞いてうれしいです:)