2017-03-21 7 views
-2

私は既にアンドロイドスタジオでFacebookのサインを実装しています。今度はグラフAPIを実装してユーザーデータにアクセスし、firebaseデータベースに保存したいのですが、すでにFacebookのヘルプを使用していたので実装するようなことはありませんが、コードにエラーが表示されます。Facebookのログインを実装した後、ユーザーデータを取得するためにアンドロイドにFacebookのグラフAPIを実装する方法は?

私は、パブリックプロファイル以上のものにアクセスするためのユーザー権限を取得するために実装する必要もあります。誰かがステップガイドで私に踏み込むことができれば非常に高く評価されます。あなたの活動やその断片から

おかげ

new GraphRequest(
       loginResult.getAccessToken(), 
       "/{user-id}/likes", 
       null, 
       HttpMethod.GET, 
       new GraphRequest.Callback() { 
        public void onCompleted(GraphResponse response) { 
         /* handle the result */ 
         textViewLongitude.setText(String.valueOf(response)); 
        } 
       }).executeAsync(); 
+0

あなたが質問を手の込んだを試してみてください? – g7pro

+0

** https://developers.facebook.com/docs/facebook-login/android**から参照を取得してください –

答えて

0

コールgetFBUser(accessToken)

FacebookUtils.getInstance(MainActivity.this).getFBUser(accessToekn); 

このクラスを追加し、

import android.content.Context; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.util.Log; 

import com.facebook.AccessToken; 
import com.facebook.GraphRequest; 
import com.facebook.GraphResponse; 
import com.facebook.HttpMethod; 

import org.json.JSONObject; 

public class FacebookUtils { 
private static FacebookUtils _FacebookUtils; 
private static Context context; 
private String TAG = FacebookUtils.class.getSimpleName(); 

private FacebookUtils(Context context) { 
    FacebookUtils.context = context; 
} 

public static FacebookUtils getInstance(Context context) { 
    if (null == _FacebookUtils) { 
     synchronized (FacebookUtils.class) { 
      if (null == _FacebookUtils) { 
       _FacebookUtils = new FacebookUtils(context); 
      } 
     } 
    } 
    return _FacebookUtils; 
} 

public void getFBUser(final AccessToken accessToken) { 
    GraphRequest request = GraphRequest.newMeRequest(
      accessToken, 
      new GraphRequest.GraphJSONObjectCallback() { 
       @Override 
       public void onCompleted(
         JSONObject object, 
         GraphResponse response) { 
        Log.d(TAG, "FB details are: " + 
          response.toString()); 

        Log.d(TAG, "FB response.getRawResponse(): " + 
          response.getRawResponse()); 

        Log.d(TAG, "FB response.getJSONObject(): " + 
          response.getJSONObject()); 

        Bundle bundle = new Bundle(); 
        bundle.putString("Details", response.getRawResponse()); 
        Message message = new Message(); 
        message.setData(bundle); 
        // callback.handleMessage(message); 

        try { 
         getFbUserDetails(response.getJSONObject().getString("id"), accessToken); 
        } catch (Exception exception) { 
         exception.toString(); 
        } 
       } 
      }); 
    Bundle parameters = new Bundle(); 
    parameters.putString("fields", "id,name,link,email"); 
    request.setParameters(parameters); 
    request.executeAsync(); 
} 

public void getFbUserDetails(String userId, AccessToken accessToken) { 
    new GraphRequest(
      accessToken, 
      "/" + userId, 
      null, 
      HttpMethod.GET, 
      new GraphRequest.Callback() { 
       public void onCompleted(GraphResponse response) { 
     /* handle the result */ 
        Log.d(TAG, "Response of User Details: " + response.toString()); 
        Bundle bundle = new Bundle(); 
        bundle.putString("Details", response.toString()); 
        Message message = new Message(); 
        message.setData(bundle); 
        // callback.handleMessage(message); 
       } 
      } 
    ).executeAsync(); 
    } 
} 
関連する問題