Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime Facebook C#SDK,获取用户电子邮件时出现问题_Datetime_C# 4.0_Facebook C# Sdk - Fatal编程技术网

Datetime Facebook C#SDK,获取用户电子邮件时出现问题

Datetime Facebook C#SDK,获取用户电子邮件时出现问题,datetime,c#-4.0,facebook-c#-sdk,Datetime,C# 4.0,Facebook C# Sdk,我正在使用FacebookC#SDK,并获得了一个关于如何设置登录并获取一些用户信息以注册我的网站的示例。然而,我坚持在电子邮件信息。它总是空的 我在这里查阅了一些相关的帖子,但没有一篇能解决我的问题。我需要的所有信息都来了,只缺少电子邮件和生日 我在shtml部分页面中的代码如下所示: <div id="fb-root"></div> <fb:login-button id="fblogin" onlogin="window.open('http://' + lo

我正在使用FacebookC#SDK,并获得了一个关于如何设置登录并获取一些用户信息以注册我的网站的示例。然而,我坚持在电子邮件信息。它总是空的

我在这里查阅了一些相关的帖子,但没有一篇能解决我的问题。我需要的所有信息都来了,只缺少电子邮件和生日

我在shtml部分页面中的代码如下所示:

<div id="fb-root"></div>
<fb:login-button id="fblogin" onlogin="window.open('http://' + location.host + '/Facebook/LogOn', '_self')" perms='email'></fb:login-button>
<script>
    window.fbAsyncInit = function () {
        FB.init({
            appId: '@Facebook.FacebookApplication.Current.AppId',
            cookie: true,
            xfbml: true,
            oauth: true
        });

        function facebooklogin() {
            FB.login(function (response) {
                if (response.authResponse) {
                    // user authorized
                    //window.location.reload();
                    window.open("http://" + location.host + "/Facebook/LogOn", "_self")
                } else {
                    // user cancelled
                }
            }, { scope: '@ViewBag.ExtendedPermissions' });
        };

        $(function () {
            // make the button is only enabled after the facebook js sdk has been loaded.
            $('#fblogin').attr('disabled', false).click(facebooklogin);
        });
    };
    (function () {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
    } ());
</script>
如果我放置这些行,如示例所示:

[FacebookAuthorize(Permissions = ExtendedPermissions)]

if (fbWebContext.IsAuthorized(ExtendedPermissions.Split(',')))
我的应用程序停止工作

有人有办法吗?O另一个获得授权请求电子邮件和生日的示例代码

编辑

问题在于这一行:

}, { scope: '@ViewBag.ExtendedPermissions' });
在我的应用程序中应该是:

}, { scope: 'email,user_birthday,user_hometown' }); //alter to get permission to access user data
我没有将作用域(perms)设置为facebook访问。。。但现在,我有另一个问题

我的文化日期时间是dd/MM/yyyy,Facebook生日设置为MM/dd/yyyy,我尝试了以下方法:

var birthdate = DateTime.Parse(me.birthday, CultureInfo.CreateSpecificCulture("pt-BR"));
因为我的文化是巴西的,但我仍然会遇到日期时间错误:

String was not recognized as a valid DateTime.

有人知道如何解决这个问题吗?

这句话让Facebook生日的一切都很好

var birthdate = DateTime.ParseExact(me.birthday, "MM/dd/yyyy", CultureInfo.InvariantCulture);

我有一个类似的解决方案。。。我不确定这是否能解决问题。。但请尝试脱机访问,在登录按钮中使用电子邮件而不是电子邮件。
var birthdate = DateTime.ParseExact(me.birthday, "MM/dd/yyyy", CultureInfo.InvariantCulture);