我正试图发布到Facebook页面,因为页面和我有问题。
当我跑步时,我得到:
Facebook.FacebookOAuthException:(OAuthException - #200)(#200)用户对此页面上的此操作没有足够的管理权限
我认为我需要用户访问令牌而不是应用程序访问令牌。在线示例显示交换令牌的“代码”。我目前无法检索此“代码”。
对于这么简单的任务来说,这个过程看起来非常复杂。我在这里错过了什么吗?
我需要用户访问令牌吗?如果此代码在Windows服务中并且无法提示用户,我该如何获得此令牌。
const string applicationId = "114810611889734";
const string applicationSecret = "*** SECRET ***";
const string pageId = "102661313114041";
var client = new FacebookClient();
dynamic token = client.Get("oauth/access_token", new
{
client_id = applicationId,
client_secret = applicationSecret,
grant_type = "client_credentials"
});
client.AccessToken = token.access_token;
dynamic parameters = new ExpandoObject();
parameters.title = "test title";
parameters.message = "test message";
var result = client.Post(pageId + "/feed", parameters);
答案 0 :(得分:5)
好的,我终于可以发布到我的Facebook页面,但现在我需要一个用户这样做。这些是我采取的步骤......
首先,我需要创建一个新的Facebook帐户,我将使用该帐户发布到此页面。
接下来,我转到了我的Page的Admin Roles部分,并将此用户添加为Manager。
我从此网址获得此用户的访问令牌:
重定向后,URL应包含一个不会过期的access_token。 (expires_in = 0应该在URL中。)
为了确认这一点,我去了https://developers.facebook.com/tools/debug/access_token的访问令牌调试器,进入我的访问令牌并点击调试。
最后,我对我的代码进行了一些更改,以使用我的访问令牌而不是应用程序ID和应用程序密钥。
const string accessToken = "MY_ACCESS_TOKEN";
const string pageId = "MY_PAGE_ID";
var client = new FacebookClient(accessToken);
dynamic parameters = new ExpandoObject();
parameters.title = "test title";
parameters.message = "test message";
var result = client.Post(pageId + "/feed", parameters);
此访问令牌现已硬编码到我的应用程序的配置文件中。