我在我的代码中添加了Facebook登录按钮。它运作良好。
假设用户通过facebook登录并取消选中'user_friends'权限:将调用'onSuccess'函数,以便可以从loginResult中获取用户数据。
下次当他打开应用程序时,他将获得facebook权限屏幕以允许'user_friends'权限。假设他再次取消选中:'onCancel'功能将被调用,尽管用户现在将按预期自动登录(因为他从未退出)。
如何在onCancel中获取他的数据? (因为我知道他已登录但未取消一些权限)
用户上次登录而非此次登录,因此此次不会调用onSuccess
mCallbackManager = CallbackManager.Factory.create();
mLoginButtonFacebook.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
}
@Override
public void onCancel() {
AccessToken token = AccessToken.getCurrentAccessToken();
if (token != null) {
// here I would like to retrieve the user data
// the user is logged in with canceled permissions
}
}
@Override
public void onError(FacebookException exception) {
}
});
答案 0 :(得分:0)
<强>成功!对不起您的时间和感谢。
AccessToken accessToken = AccessToken.getCurrentAccessToken();
GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
// object will contain the user data
}
});