C#Facebook API - 用户尚未授权应用程序执行此操作

时间:2013-06-13 12:05:44

标签: c# facebook api oauth

我一直在努力弄清楚如何将更新发布到我的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进行调试,但对我来说似乎没用!

非常感谢任何帮助!

由于

1 个答案:

答案 0 :(得分:0)

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

有关离线弃用准则,请参阅此处的方案5 https://developers.facebook.com/roadmap/offline-access-removal/