2013-07-17 53 views
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); 

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

在此先感谢

回答

0

发布到朋友的墙已经通过API被禁用

留言给朋友墙产生高水平的负面的用户反馈,包括“隐藏”和“标记为垃圾邮件”等我们从取出API。如果您想允许用户通过您的应用发布到朋友的时间表,您可以调用提要对话框。通过用户提及标签或动作标签的朋友的故事将显示在朋友的时间轴上(假设朋友认可标签)。

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

0

我认为除了是非常明确的:您的应用程序必须向目标用户的授权后在其壁上,并且用户必须批准。想象一下,如果有任何应用程序可以在任何人的墙上代表任何人发布任何想要的内容,那么Facebook将如何呢?

根据您的实施情况,您需要询问publish_stream,status_update或甚至其他许可。

我是否将此作为参数传递? - CR41G14

我认为它比这更复杂,因为您必须在演示前征求许可。查看this question了解可能对您有帮助的一些信息(这里也有其他几个关于该主题的问题)。

+0

好吧我传递这是一个PARAM? – CR41G14

+0

对不起,这也没有帮助。实施起来相当困难! – CR41G14

0

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

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

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

匿名

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

[BasicAuthorize]至少需要用户应该登录

[使用AllowAnonymous]允许每一个应用

+0

这是如何坚持张贴到墙上? – CR41G14