我正在尝试通过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"}
我如何获取电子邮件,个人资料图片网址?
请帮助。预先感谢。
答案 0 :(得分:1)
您需要使用Facebook Graph API。您需要让用户登录并调用AccessToken.refreshCurrentAccessTokenAsync();
并向所需的用户数据字段发起请求。