在Xamarin.Android项目中使用Facebook SDK 4.4。我有以下方法:
protected override void OnCreate(Bundle savedInstanceState)
{
LoginButton button = FindViewById<LoginButton>(Resource.Id.FbLoginBtn);
button.SetReadPermissions(new List<string>{ "public_profile", "email" });
mCallBackManager = CallbackManagerFactory.Create();
button.RegisterCallback(mCallBackManager, this);
button.Click += (o, e)=>
{
GraphRequest request = GraphRequest.NewMeRequest(AccessToken.CurrentAccessToken, this);
Bundle paramenters = new Bundle();
paramenters.PutString("fields", "id,name,email,first_name,last_name");
request.Parameters = paramenters;
request.ExecuteAsync();
};
}
public void OnCompleted(JSONObject @object, GraphResponse response)
{
if (@object != null)
{
userEmail.Text = @object.ToString();
}
}
上述代码的问题在于,在OnCompleted
方法中,当我从应用程序登录到我的facebook帐户时,JSONObject
始终返回null。但是,当我再次单击该按钮以 注销 时,我得到了包含我指定的所有字段的正确json。
我的问题是,为什么GraphRequest
在登录时返回null但在注销时成功返回JSON?