2017-02-03 21 views
1

私はAndroid用Facebookログインを使用しています。できます。私はエミュレータからログインできます。しかし、私はRails Rest APIに情報を送り返す必要があります。 Facebookのコールバックが成功すると、アクセストークン、プロバイダ( "facebook")、uid、Facebookのユーザー名、Facebookのユーザーのメールアドレス、およびFacebookのイメージアイコンを返信したいと思います。Facebookから認証トークンとユーザー情報を取得

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(LoginResult loginResult) { 
    Log.i("AUTHENTICATION TOKEN", String.valueOf(loginResult.getAccessToken())); 
    } 

Logcatは、次のことを示しています

I/AUTHENTICATION TOKEN: {AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile, contact_email, email]} 

どのように私は私がonSuccessが必要な情報を得るのですか?あなたはLoginResult.getAccessToken()使用して取得したアクセストークンを持っていたら

+1

hereを見ることができ、ユーザのために利用可能なフィールドのリストをに必要なすべての権限を付与している提供含まれています_ "アクセストークン、プロバイダ(" facebook ")、uid、Facebookのユーザー名、Facebookのユーザーメール、およびFacebookの画像アイコンを送り返したいと思います。"誰でもあなたのAPIに偽のID、名前、電子メールでリクエストを送ることができます。アクセストークンのみを送信し(他の種類のトークンと区別する必要がある場合は、おそらく 'facebook ')、そのトークンを使用してサーバー側APIリクエストを行い、残りのユーザーの詳細を取得します。 – CBroe

+0

@CBroe良い点、私はそれを考慮に入れます – Donato

答えて

1

を試してみてください。 SDK Docsから、

GraphRequest request = GraphRequest.newMeRequest(
     accessToken, 
     new GraphRequest.GraphJSONObjectCallback() { 
      @Override 
      public void onCompleted(
        JSONObject object, 
        GraphResponse response) { 
       // Application code 
      } 
     }); 
Bundle parameters = new Bundle(); 
parameters.putString("fields", "id,name,email"); 
request.setParameters(parameters); 
request.executeAsync() 

JSONObject objectが必要なユーザー情報は、ユーザーがアプリケーション

+0

このコードは私にIDと名前を与えます。しかし、どこにuid、電子メール、そしてFacebookのアイコンがありますか?結果セットにはありません。 – Donato

+0

UIDはどのように入手できますか?それが最も重要な部分です。 – Donato

+0

idフィールドは、ユーザーの一意のIDであり、アプリ固有のIDです。利用可能なフィールドのリストの回答の最後の行に投稿したリンクを確認してください – akash93

0

あなたが受信したアクセストークンを使用してFacebookのグラフAPIを呼び出す必要があり、この

Log.i("AUTHENTICATION TOKEN", AccessToken.getCurrentAccessToken().getToken()); 
関連する問題