【问题标题】:Posting to a friends wall with exception发布到朋友墙例外
【发布时间】:2013-07-17 13:50:34
【问题描述】:

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

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

提前致谢

【问题讨论】:

    标签: c# asp.net-mvc facebook facebook-graph-api


    【解决方案1】:

    在朋友的墙上发帖已被禁用

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      匿名

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

      [BasicAuthorize] 至少需要用户登录

      [AllowAnonymous] 允许所有人申请

      【讨论】:

      • 这如何坚持贴在墙上?
      【解决方案3】:

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

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

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

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

      【讨论】:

      • 对不起,这也没有帮助。实施起来相当困难!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      • 1970-01-01
      相关资源
      最近更新 更多