我正在尝试构建一个简单的登录到Facebook应用程序(使用FB api v4.0)并检索有关用户的一些数据,但由于某种原因我成功登录并仅从我个人的Facebook个人资料中获取数据,如果试图用其他用户配置文件登录我得到null。 (我将facebook开发者的设置更改为公共应用程序。)
这是我的一些loginButton_Fragment:
private CallbackManager callbackManager;
private FacebookCallback<LoginResult> facebookCallback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
Profile profile = Profile.getCurrentProfile();
Log.d("koko",accessToken.toString() );
if (profile != null){
GraphRequest request = GraphRequest.newMeRequest(
accessToken,
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
try {
user_birthDay = object.getString("birthday");
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,birthday");
request.setParameters(parameters);
request.executeAsync();
user_name = profile.getName();
user_id = profile.getId();
Log.d("koko","first " +user_name + " " + user_id + " " + user_birthDay );
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
comm.respone(user_name, user_id, user_birthDay);
}
}, 500);
}
}
@Override
public void onCancel () {
}
@Override
public void onError (FacebookException e){
}
};
每次登录时,我都会进入onSuccess,但如果它不是我的个人资料,那么该资料就是null。
答案 0 :(得分:0)
您需要从Facebook获取应用程序特定权限,以便通过提交审核来检索用户个人信息,例如birthday
,user_friends
等。
投资一些时间here。
如果您的应用请求此类权限,Facebook必须审核您的应用如何使用它。
默认情况下,您将获得public_profile
。
答案 1 :(得分:0)
设置读取权限 oTable = $('#mylist').dataTable({
"dom": "<'row no-gutters'<'col-md-4'l><'col-md-4'r><'col-md-4'f>>t<'row no-gutters'<'col-md-4'i><'col-md-4'><'col-md-4'p>>",
"processing": true,
"serverSide": true,
"ajax": "{{ URL('product/list') }}",
"columnDefs": [
{"orderable": false, "targets": [3, 4]},
],
"order": [[0, "asc"]]
});
试试这个
mButtonLogin.setReadPermissions(Arrays.asList("email,public_profile","user_birthday"));