如何使用 Facebook 图 API 从应用令牌转换为页面令牌?

How do I convert from an app token to a page token using the Facebook graph API?

我正在使用 Facebook .NET SDK。

我可以像这样生成应用程序访问权限:

var client = new FacebookClient();
dynamic appAccessToken =
            client.Get(
                string.Format("/oauth/access_token?client_id={0}&client_secret={1}&grant_type=client_credentials", appId, appSecret));

这让我返回格式为 {appId}|{token}

的访问令牌

如果我随后将其传递回客户端对象,我希望获得页面访问令牌,但我只是返回页面 ID,而我期望获得页面 ID 和访问令牌。

完整代码:

var client = new FacebookClient();
dynamic appAccessToken =
            client.Get(
                string.Format("/oauth/access_token?client_id={0}&client_secret={1}&grant_type=client_credentials", appId, appSecret));
client.AccessToken = appAccessToken.access_token;
dynamic tokens = client.Get(string.Format("/v2.5/{0}?fields=access_token", pageId));

要获取页面令牌,您需要获得 manage_pages 权限授权,并使用 /me/accounts 端点获取所有页面的页面令牌。或 /page-id?fields=access_token 用于单个页面。但是,您必须使用具有 manage_pages 的用户令牌,您不能只使用应用令牌。应用令牌不与用户(以及他管理的页面)绑定。

更多信息:

确保您了解 App Token、User Token 和 Page Token 之间的区别。当然,您无法为您不管理的页面获取页面令牌,以防万一不清楚。