我得到的例外是“用户未授权应用程序执行此操作”。我知道这是一个很好的发布的例外,但我没有任何规则可以让这个代码工作。我试图通过API发布到朋友的墙上。
AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));
String accessToken = result.ExtraData["accesstoken"];
FacebookClient client = new FacebookClient(accessToken);
dynamic parameters = new ExpandoObject();
arameters.message = "Testing";
我设法让我的朋友获得facebook ID,这是facebookFriendID
object resTest = client.Post("/" + facebookFriendID + "/feed", parameters);
这是抛出异常。我是否需要在我的应用中设置任何特殊选项以允许此帖子发布到朋友的墙上和/或接收帖子的用户是否需要先接受该应用?我需要发送其他任何参数吗?
提前致谢
答案 0 :(得分:0)
我认为异常是非常明确的:您的应用必须要求目标用户授权在其墙上发布,并且用户必须批准它。想象一下,如果任何应用程序可以在任何人的墙上代表任何人发布任何想要的内容,Facebook将会如何。
根据您的实施情况,您需要提出publish_stream
,status_update
或其他许可。
我是否将此作为参数传递给我? - CR41G14
我认为这比这更复杂,因为你必须在表演前要求获得许可。查看this question以获取可能对您有所帮助的一些信息(此处还有关于该主题的其他几个问题)。
答案 1 :(得分:0)
确保用户只能访问他/她的页面或整个应用程序的授权检查。
对于基本授权,您可以这样做
[BasicAuthorize]
public ActionResult Index()
{
// code will go here
}
匿名
[AllowAnonymous]
public ActionResult Index()
{
// code will go here
}
[BasicAuthorize]至少需要用户登录
[AllowAnonymous]允许每个人申请
答案 2 :(得分:0)
发布到朋友的墙已被禁用
通过API发布到朋友墙会产生大量负面用户反馈,包括“隐藏”和“标记为垃圾邮件”,因此我们将其从API中删除。如果您想允许人们发布给他们的朋友您的应用程序中的时间轴,您可以调用提要对话框。通过用户提及标记或操作标记包含朋友的故事将显示在朋友的时间轴上(假设朋友批准了标记)。
https://developers.facebook.com/blog/post/2012/10/10/growing-quality-apps-with-open-graph/