我正在开发一个Iframe-Canvas应用程序。
我正在使用母版页获取权限访问权限显示一些细节,这很好。
然后在内容页面上我想显示一个文本框& linkbutton所以用户可以在他们的墙上发布状态&我在这里得到错误
(OAuthException)必须使用活动访问令牌来查询有关当前用户的信息。
这是我的代码:
Site.master.cs
protected void Page_Load(object sender, EventArgs e)
{
var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me","user_birthday","user_location","offline_access","publish_stream" } };
if (auth.Authorize())
{
ShowFacebookContent();
}
}
private void ShowFacebookContent()
{
var fb = new FacebookWebClient();
dynamic myInfo = fb.Get("me");
lblName.Text = myInfo.name;
imgProfile.ImageUrl = "https://graph.facebook.com/" + myInfo.id + "/picture";
lblBirthday.Text = (myInfo.birthday == null ? string.Empty : DateTime.Parse(myInfo.birthday).ToString("dd-MMM-yy"));
lblHometown.Text = (myInfo.hometown.name == null ? string.Empty : myInfo.hometown.name);
lblLocation.Text = (myInfo.location.name == null ? string.Empty : myInfo.location.name);
pnlHello.Visible = true;
}
Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
}
public void LinkButton1_Click(object sender, EventArgs e)
{
var fb = new FacebookClient("access_token");
//var fb = new FacebookWebClient();
dynamic feedparameters = new ExpandoObject();
feedparameters.message = (message_txt.Text == null ? " " : message_txt.Text);
feedparameters.user_message_prompt = "userPrompt";
dynamic result = fb.Post("me/feed", feedparameters);
}
我对FacebookSDK很新,所以任何帮助都会非常感激。
答案 0 :(得分:1)
Wel终于找到了问题所在。需要添加隐藏字段。
<input type="hidden" name="signed_request" value="<%: Request.Params["signed_request"]%>"/>
我认为在文档和提供的样本中都没有提及任何内容。
答案 1 :(得分:0)
您不应该将“access_token”作为字符串值传递。您需要了解建立用户会话时Facebook提供给您的实际access_token值,然后将该access_token值传递给构造函数。
查看this question了解详情。