使用 firebase 的 Facebook 身份验证获取用户数据
Facebook auth with firebase get User data
我正在尝试对 Facebook 使用 Firebase 身份验证。
我已经成功实现了登录部分,但在使用 accessToken 从 facebook 获取用户详细信息时卡住了。
代码如下:
loginButton.setReadPermissions("email", "public_profile" );
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
Log.d(TAG, "facebook:onSuccess:" + loginResult);
GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject me, GraphResponse response) {
Log.e("FBRESPONSE",me.toString());
if (response.getError() != null) {
// handle error
} else {
if (me.has("picture")) {
try {
f_photo = me.getJSONObject("picture").getJSONObject("data").getString("url");
} catch (JSONException e) {
e.printStackTrace();
}
}
f_email = me.optString("email");
String id = me.optString("id");
f_name=me.optString("first_name")+" "+me.optString("last_name");;
handleFacebookAccessToken(loginResult.getAccessToken());
}
}
}).executeAsync();
}
});
这是 JSON 调用时我得到的响应。
E/FBRESPONSE: {"name":"Vishnu Reddy","id":"855235691328214"}
我如何获取电子邮件、个人资料图片 URL?
请帮忙。提前致谢。
您需要使用Facebook Graph API。您需要让您的用户登录并调用 AccessToken.refreshCurrentAccessTokenAsync();
并向您需要的用户数据字段发起请求。
我正在尝试对 Facebook 使用 Firebase 身份验证。
我已经成功实现了登录部分,但在使用 accessToken 从 facebook 获取用户详细信息时卡住了。
代码如下:
loginButton.setReadPermissions("email", "public_profile" );
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
Log.d(TAG, "facebook:onSuccess:" + loginResult);
GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject me, GraphResponse response) {
Log.e("FBRESPONSE",me.toString());
if (response.getError() != null) {
// handle error
} else {
if (me.has("picture")) {
try {
f_photo = me.getJSONObject("picture").getJSONObject("data").getString("url");
} catch (JSONException e) {
e.printStackTrace();
}
}
f_email = me.optString("email");
String id = me.optString("id");
f_name=me.optString("first_name")+" "+me.optString("last_name");;
handleFacebookAccessToken(loginResult.getAccessToken());
}
}
}).executeAsync();
}
});
这是 JSON 调用时我得到的响应。
E/FBRESPONSE: {"name":"Vishnu Reddy","id":"855235691328214"}
我如何获取电子邮件、个人资料图片 URL?
请帮忙。提前致谢。
您需要使用Facebook Graph API。您需要让您的用户登录并调用 AccessToken.refreshCurrentAccessTokenAsync();
并向您需要的用户数据字段发起请求。