使用Javascript SDK和C#代码将Facebook用户ID存储在数据库中

时间:2015-01-12 01:40:22

标签: c# asp.net facebook web

我无法找到任何人回答有关如何在SQL Server数据库中存储Facebook用户ID(或任何其他信息,如姓名,生日......等)的具体问题。

我正在使用在https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.2

上提供的ASP.NET中开发的网站的Javascript SDK

据我所知,Facebook允许您指定范围,您可以在Java中检索这些值,但我需要以某种方式从登录后面的代码(C#)获取Facebook UserID,然后存储在数据库中

我已阅读有关使用隐藏字段的信息,并尝试将其显示在标签上,但标签仍为空白......

见下文

       function testAPI() {

            console.log('Welcome!  Fetching your information.... ');
           FB.api('/me', function (response) {
               console.log('Successful login for: ' + response.name);
               document.getElementById('status').innerHTML =
                 'Thanks for logging in, ' + response.name + '!';
               ValueHiddenField.Value = FB.response.id; }
           );


       }

             <asp:hiddenfield id="ValueHiddenField"
              value="" 
              runat="server" OnValueChanged="ValueHiddenField_ValueChanged"     OnLoad="ValueHiddenField_Load"/>

并在代码背后:

    protected void ValueHiddenField_ValueChanged(object sender, EventArgs e)
    {
        lbl_test.Text = ValueHiddenField.Value;
    }
    protected void ValueHiddenField_Load(object sender, EventArgs e)
    {
        lbl_test.Text = ValueHiddenField.Value;
    }

有人能告诉我我在使用隐藏字段做错了吗?或者是否有其他方法可以获取userID并在代码隐藏中使用它。感谢

1 个答案:

答案 0 :(得分:0)

我很确定如果您检查浏览器控制台日志,您应该找到类似于以下内容的内容

  

无法读取未定义

的属性'id'

由于这段代码ValueHiddenField.Value = FB.response.id;

值为response.id而非FB.response.id

这很可能是因为你的标签是空白的。