使用ASP.NET将状态发布到没有Facebook模态窗口的Facebook个人资料
题
我正在尝试在我的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;
}
不隶属于 StackOverflow