我已经在Android Studio中实现了facebook登录。现在我想实现图形 API 来访问用户数据并将其保存在 firebase 数据库中,但我没有任何想法要实现,因为我已经使用了 facebook 帮助,但代码显示错误。
我还必须实现以获取用户权限,而不仅仅是访问公共配置文件。如果有人能一步一步地指导我,我们将不胜感激。
谢谢
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();
从您的活动或片段中调用 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();
}
}