生日范围未显示在Facebook登录权限对话框中

时间:2016-11-30 10:14:54

标签: android ios facebook facebook-graph-api xamarin.forms

我正在使用xamarin.forms PCL Project有两个项目android和IOS

我已将facebook集成到我的项目中。 我在facebook sdk中通过了三个权限public_profileemailuser_birthday。 当我尝试通过Facebook登录时,Facebook权限对话框页面打开,但它要求仅接受两个权限emailpublic_profile,不要求user_birthday权限

以下是我的代码:

    public class FacebookLoginButtonRenderer : ButtonRenderer,IFacebook
    {
        private static Activity _activity;

        protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
        {
            base.OnElementChanged(e);

            _activity = this.Context as Activity;

            if (this.Control != null)
            {
                Android.Widget.Button button = this.Control;
                button.SetOnClickListener(ButtonClickListener.Instance.Value);
            }
        }

        void IFacebook.Logout()
        {
            LoginManager.Instance.LogOut();
        }

        private class ButtonClickListener : Object, IOnClickListener
        {
            public static readonly Lazy<ButtonClickListener> Instance = new Lazy<ButtonClickListener>(() => new ButtonClickListener());

            public void OnClick(View v)
            {
                LoginManager.Instance.LogInWithReadPermissions(_activity, new List<string> { "public_profile","email","user_birthday"});
            }
        }
    }

  FacebookClient fb = new FacebookClient(AccessToken);
   fb.GetTaskAsync("me?fields=id,email,first_name,last_name,gender,birthday").ContinueWith(t =>   
            {
                if (!t.IsFaulted)
                {

                    var obj = (IDictionary<string, object>)t.Result;
}
});

在登录权限对话框中,不要求生日,如下图所示

enter image description here

请建议如何解决此问题

提前致谢

2 个答案:

答案 0 :(得分:1)

从图谱API的v2.0开始,就不可能再获得朋友生日了。您只能使用user_birthday权限获取授权用户的生日。有关详细信息,请参阅更改日志:https://developers.facebook.com/docs/apps/changelog

只有另一种可能性:如果朋友使用user_birthday授权应用程序,您可以通过以下调用获得他的生日:/ friend-id?fields = birthday

当然,您还需要使用user_friends授权用户,以便使其工作。您还可以存储所有授权用户的生日,不要浪费额外的API调用。 检查一下:

How to get friend's birthday list using facebook api?

答案 1 :(得分:0)

更改user_birthday的生日和user_gender的性别,然后按照https://developers.facebook.com/docs/facebook-login/review

上的说明提交应用以查看权限