我正在尝试在我的ASP.NET网站上使用Facebook,我的网站登录用户在一个框中输入文本,以便在我的网站上显示其状态。我希望他们能够根据他们的许可将该状态推送到FB。我是使用简单的Facebook Connect JS代码完成的,但我想在.NET中获取信息并以此方式推送它。我实际上并没有为FB配置文件创建FB应用程序。

这是我想要的伪代码:

Facebook fb = new Facebook(apiKey);
FBSession sess = fb.Authenticate();
if(sess.isAuthenticated) {
  User u = fb.getUser(sess.userId);
  u.setStatus(Textbox1.text);
  u.SaveStatus();
}

对于.NET来说,这样的事情是否存在,或者仅仅是针对PHP的API?

有帮助吗?

解决方案

当然,这是一些示例代码。它使用的是Facebook Developer Toolkit(您可以在codeplex上找到它)。和FBConnectAuth也可以在codeplex上找到。

您想要检查Cookie以确保Cookie是真实的(确保某人不会尝试入侵);这就是cookie验证步骤很重要的原因。

只要您使用JS代码登录,就可以在C#中访问JS中设置的相同cookie。

这适用于Facebook Connect应用。

        using FBConnectAuth;
        using facebook;

        public facebook.API api = new facebook.API();

        bool IsLoggedInToFacebook = false;
        FBConnectAuthentication auth = new FBConnectAuthentication(ConfigurationManager.AppSettings["AppKey"], ConfigurationManager.AppSettings["Secret"]);
        if (auth.Validate() != ValidationState.Valid)
        {
            IsLoggedInToFacebook = false;
        }
        else
        {
            FBConnectSession fbSession = auth.GetSession();
            string userId = fbSession.UserID;
            string sessionKey = fbSession.SessionKey;

            api.ApplicationKey = ConfigurationManager.AppSettings["AppKey"];
            api.SessionKey = sessionKey;
            api.Secret = ConfigurationManager.AppSettings["Secret"];
            api.uid = Convert.ToInt64(userId);
            api.status.set("statutes text goes here")

            IsLoggedInToFacebook = true;
        }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top