我正在使用 Android 版 Facebook 登录。有用。我可以通过模拟器登录。但是,我需要将信息发送回我的 Rails Rest API。在 facebook 回调成功后,我想发回访问 token 、提供者(“facebook”)、uid、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()
获取访问 token 后,
您需要使用收到的访问 token 调用 Facebook Graph api。来自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
将包含所需的用户信息,前提是用户已授予您的应用程序所有必要的权限
可以看到用户可用的字段列表here
关于android - 从 Facebook 获取身份验证 token 和用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42015627/