0

我得到的例外是“用户尚未授权应用程序执行此操作”。我知道这是一个很好发布的异常,但是我没有可以遵循的规则来让这个代码工作。我正在尝试通过 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);

这是抛出异常。我是否需要在我的应用程序中设置任何特殊选项以允许将其发布到朋友墙和/或接收帖子的用户是否需要先接受该应用程序?我还需要发送其他参数吗?

提前致谢

4

3 回答 3

0

我认为例外情况非常明确:您的应用程序必须要求目标用户授权才能在其墙上发布,并且用户必须批准它。想象一下,如果任何应用程序可以代表任何人在任何人的墙上发布它想要的任何内容,Facebook 会是什么样子。

根据您的实施,您将需要请求publish_streamstatus_update甚至其他权限。

我是否将其作为参数传递?– CR41G14

我认为这比这更复杂,因为您必须在表演前征得许可。查看此问题以获取一些可能对您有所帮助的信息(在 SO 中,还有关于该主题的其他几个问题)。

于 2013-07-17T13:59:52.387 回答
0

发布到朋友的墙已被禁用

通过 API 发布到朋友墙会产生大量负面用户反馈,包括“隐藏”和“标记为垃圾邮件”,因此我们将其从 API 中删除。如果您想允许人们从您的朋友的时间线发布信息应用程序,您可以调用提要对话框。通过用户提及标记或动作标记包含朋友的故事将显示在朋友的时间轴上(假设朋友批准标签)。

https://developers.facebook.com/blog/post/2012/10/10/growth-quality-apps-with-open-graph/

于 2013-07-17T15:06:38.940 回答
0

确保用户只能访问他/她的页面或整个应用程序的授权检查。

对于基本授权,您可以这样做

    [BasicAuthorize]
    public ActionResult Index()
    {
       // code will go here
    }

对于匿名

    [AllowAnonymous]
    public ActionResult Index()
    {
       // code will go here
    }

[BasicAuthorize] 至少需要用户登录

[AllowAnonymous] 允许每个人申请

于 2013-07-17T14:05:50.827 回答