我如何张贴到Facebook与FacebookClient页面

本文关键字:FacebookClient 页面 Facebook 何张贴 | 更新日期: 2023-09-27 17:50:46

我正在尝试发布到facebook页面,因为页面和我有问题。

当我运行这个时,我得到:

Facebook。facebookkoautheexception: (oautheexception - #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);

我如何张贴到Facebook与FacebookClient页面

好的,我终于能够发布到我的Facebook页面,但现在我需要一个用户这样做。这些是我采取的步骤……

首先,我需要创建一个新的Facebook帐户,我将使用它来发布到这个页面。

接下来,我转到我的页面的Admin Roles部分,并将该用户添加为Manager。

我从这个URL获得了这个用户的访问令牌:

https://www.facebook.com/dialog/oauth?client_id=APPLICATION_ID& redirect_uri = https://www.facebook.com/connect/login_success.html& response_type =代码+ token&显示= popup&范围= manage_pages

在重定向之后,URL应该包含一个不会过期的access_token。(expires_in=0应该在URL中)

为了确认这一点,我去了访问令牌调试器https://developers.facebook.com/tools/debug/access_token,输入我的访问令牌并点击Debug。

最后我对我的代码做了一些改变,使用我的访问令牌而不是应用程序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);

这个访问令牌现在硬编码到我的应用程序的配置文件。