问题描述
||
我有一个Web项目(不是mvc),并且我想学习有关Facebook集成的信息(我是facebook dev noob)。在我的页面中,我有一些简单的html和一个asp.net按钮。我为signed_request添加了一个隐藏字段(用于按钮回发),这似乎也可以。当我尝试在page_load中添加多个权限时,就会出现问题。如果仅检查user_about_me权限,则该页面似乎正常工作。如果我添加了publish_stream权限,则该页面会不断循环,并且一遍又一遍地加载(每次都重定向)。这是我的page_load代码,当它循环时,要使其不循环,我只删除逗号和第二个权限。奇怪的是,EITHER权限本身起作用:
protected void Page_Load(object sender,EventArgs e)
{
var auth = new CanvasAuthorizer();
auth.Permissions = new[] { \"user_about_me,publish_stream\" };
if (auth.Authorize())
{
var fb = new FacebookWebClient();
dynamic me = fb.Get(\"me\");
lblAuth.Text = string.Format(\"User {0} has given permission for this app.\",me.name);
}
else
{
lblAuth.Text = \"You have not given permission to this application\";
}
}
我的aspx看起来像这样:
<asp:Label ID=\"lblAuth\" runat=\"server\" Text=\"\"></asp:Label>
<% if(!string.IsNullOrEmpty(Request.Params[\"signed_request\"])) { %>
<input type=\"hidden\" name=\"signed_request\" value=\"<%= Request.Params[\"signed_request\"] %>\" />
<% } %>
<asp:Button ID=\"btnPlaceOrder\" runat=\"server\" Text=\"Place Order\"
onclick=\"btnPlaceOrder_Click\" />
<asp:Label ID=\"lblOrderPlaced\" runat=\"server\" Text=\"\"></asp:Label>
谢谢你的帮助!!
杰夫
解决方法
更改
auth.Permissions = new[] { \"user_about_me,publish_stream\" };
至
auth.Permissions = new[] { \"user_about_me\",\"publish_stream\" };