【问题标题】:C# Facebook API - The user hasn't authorized the application to perform this actionC# Facebook API - 用户尚未授权应用程序执行此操作
【发布时间】:2013-06-09 19:32:49
【问题描述】:

我一直在尝试弄清楚如何将更新发布到我的 Facebook 页面时头疼,因为我不断收到错误消息:"(OAuthException - #200) (#200) 用户尚未授权该应用程序执行此操作”

我正在编写一个需要将更新发布到 Facebook 页面的离线应用程序。我设置了一个 Facebook 帐户,并在此帐户下有一个页面,这就是我要发布的内容。通过我的应用程序,我可以将问题发布到我自己的帐户时间线,但不能发布到具有自己页面 ID 的页面时间线本身。

在审查了其他人对这类事情的问题后,我尝试了很多事情:

  • 应用本身的权限设置为:publish_actions、manage_pages、publish_stream 和 status_update

  • 一篇文章建议需要在页面本身上设置权限,我已通过这篇文章的建议:Authorizing a Facebook Fan Page for Status Updates。同样,使用了与上述相同的权限,我通过浏览器手动运行这些 URL,甚至在适用时单击对话框中的“确定”以允许我的应用程序访问。

我的代码是:

var client = new FacebookClient();

dynamic token = client.Get("oauth/access_token", new
{
    client_id = appID,
    client_secret = appSecret,
    grant_type = "client_credentials"
});

client.AccessToken = token.access_token;

dynamic parameters = new System.Dynamic.ExpandoObject();
parameters.title = "Test Title";
parameters.message = "Test Message";

var result = client.Post(pageID + "/feed", parameters);

访问令牌被检索并返回,因此看起来页面本身不接受我尝试对其设置的权限。

我曾尝试使用 Open Graph Explorer 进行调试,但对我来说似乎毫无用处!

任何帮助将不胜感激!

谢谢

【问题讨论】:

  • 该代码看起来您​​正在获取应用访问令牌,而不是页面令牌 - 您是否遵循登录文档?
  • 这个问题有答案吗?

标签: c# facebook api oauth


【解决方案1】:

正如 Igy 所提到的,当您应该使用用户访问登录流时,您正在使用登录流来请求应用程序访问令牌。要发布到粉丝页面,您需要页面访问令牌。

有关离线弃用指南,请参阅此处的场景 5 https://developers.facebook.com/roadmap/offline-access-removal/

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多