【问题标题】:facebook-C#-sdk MVC "Hello World" app - how to get access token?facebook-C#-sdk MVC“Hello World”应用程序 - 如何获取访问令牌?
【发布时间】:2011-05-12 19:03:44
【问题描述】:

我已经从 CodePlex 下载了 C# Facebook SDK“Simple MVC Website Example”:

http://facebooksdk.codeplex.com/releases/view/54371

并已成功通过我的测试 Facebook 应用程序进行身份验证。但我不太清楚如何获取访问令牌(而且我需要离线访问,所以我只需要在用户首次授权我的应用获取他们的提要数据时获取一次该令牌)。

非常感谢

【问题讨论】:

  • 您解决了吗?我添加了导致用户登录的 javascript FB.getLoginStatus。但在使用 sdk 的 c# 中,app.Session 始终为空。
  • 我确实解决了,请参阅 Nathan 的建议。可能是您的应用 ID 有问题?
  • 不要忘记将问题标记为已接受

标签: c# model-view-controller facebook facebook-c#-sdk


【解决方案1】:

你会想做两件事。首先,要请求offline_access,您需要将Javascript登录功能更改为请求离线访问,如下所示。这是在 Views/Home/Index.aspx 中。

    <div id="fb-root"></div>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <script>
        FB.init({ appId: '<%:FacebookSettings.Current.AppId %>', status: true, cookie: true, xfbml: true });
        $('#fbLogin').click(function() {
            FB.login(function (response) {
                if (response.session) {
                    window.location = '<%:Url.Action("Profile") %>'
                } else {
                    // user cancelled login
                }
            }, { perms: 'offline_access' });
        });
    </script>
</asp:Content>    

接下来,要获取访问令牌,您只需在用户通过身份验证后执行以下操作:

    public ActionResult Profile()
    {
        var app = new FacebookApp();
        if (app.Session == null)
        {
            // The user isnt logged in to Facebook
            // send them to the home page
            return RedirectToAction("Index");
        }
    // Read current access token:
        var accessToken = app.Session.AccessToken;

        // Get the user info from the Graph API
        dynamic me = app.Api("/me");
        ViewData["FirstName"] = me.first_name;
        ViewData["LastName"] = me.last_name;

        return View();
    }

【讨论】:

  • 内森,非常感谢。完美运行。顺便说一句,对于其他权限,可以将它们添加为逗号分隔的列表,例如:
【解决方案2】:

我的建议是您改用新的图形 api,您可以在此处获取它

http://github.com/facebook/csharp-sdk

以下是有关如何获取身份验证令牌的说明:

http://developers.facebook.com/docs/authentication/

【讨论】:

  • 他所说的 Facebook C# SDK 确实使用了 Graph API。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
  • 1970-01-01
  • 2014-06-10
相关资源
最近更新 更多