C# 从本地开发网站通过Facebook进行身份验证
我正在尝试添加从我正在开发的站点发布到用户墙的功能 我已经使用Microsoft C#Facebook SDK准备了一些代码。它检查当前用户是否经过身份验证,如果没有,则重定向到OAuth页面。如果用户已通过身份验证,它将尝试在其墙上张贴:C# 从本地开发网站通过Facebook进行身份验证,c#,facebook,facebook-c#-sdk,C#,Facebook,Facebook C# Sdk,我正在尝试添加从我正在开发的站点发布到用户墙的功能 我已经使用Microsoft C#Facebook SDK准备了一些代码。它检查当前用户是否经过身份验证,如果没有,则重定向到OAuth页面。如果用户已通过身份验证,它将尝试在其墙上张贴: CanvasAuthorizer auth = new CanvasAuthorizer(); bool authorized = auth.FacebookWebRequest.IsAuthorized(new string[] { "publish_s
CanvasAuthorizer auth = new CanvasAuthorizer();
bool authorized = auth.FacebookWebRequest.IsAuthorized(new string[] { "publish_stream" });
if (authorized)
{
FacebookClient client = new FacebookClient();
client.AccessToken = auth.FacebookWebRequest.AccessToken;
Dictionary<string, object> args = new Dictionary<string, object>();
args["message"] = "This is a test.";
args["name"] = "";
args["link"] = "http://subdomain.domain.lom/";
args["description"] = "Development site.";
client.Post("/me/feed", args);
}
else
{
long appId = {APP_ID};
string returnUrl = "http://subdomain.domain.com/share";
Response.Redirect("https://www.facebook.com/dialog/oauth?client_id=" + appId.ToString() + "&redirect_uri=" + returnUrl + "&scope=publish_stream");
}
CanvasAuthorizer auth=new CanvasAuthorizer();
bool authorized=auth.FacebookWebRequest.IsAuthorized(新字符串[]{“发布流”});
如果(授权)
{
FacebookClient=新的FacebookClient();
client.AccessToken=auth.FacebookWebRequest.AccessToken;
Dictionary args=新字典();
args[“message”]=“这是一个测试。”;
参数[“名称”]=“”;
参数[“链接”]=“http://subdomain.domain.lom/";
args[“description”]=“开发站点。”;
client.Post(“/me/feed”,args);
}
其他的
{
长appId={APP_ID};
字符串returnUrl=”http://subdomain.domain.com/share";
响应。重定向(“https://www.facebook.com/dialog/oauth?client_id=“+appId.ToString()+”&redirect_uri=“+returnUrl+”&scope=publish_stream”);
}
第一次加载时,它会看到您未通过身份验证,并将您重定向到Facebook身份验证页面
然而,当它试图返回到我的站点时,它会进入重定向循环
看起来,当它从Facebook返回时,它会进行身份验证检查,但它说用户没有经过身份验证。然后再次重定向到Facebook登录,它知道用户已通过身份验证,因此返回到我的站点,导致循环
目前我正在本地机器上开发,外部世界无法访问
我的Facebook应用程序设置为:
- 应用程序域:Domain.lom
- 网站网址:
returnUrl
value
它不起作用,你必须调试它:(.我的第一个客户是Facebook授权你进入另一个域。另外一个需要注意的问题是,如果IE没有无限重定向循环,它需要从你的web服务器上查看p3p策略 请在web.config中查看p3p标题。如果没有,则可以添加一个以使IE满意
请参见您好,谢谢您的评论。我尝试将当前Facebook应用程序更改为沙盒模式,不幸的是,它没有解决我的问题。它仍然没有检测到我已通过身份验证,并将我旋转到重定向循环中。