“访问令牌不属于应用程序”试图生成长期访问令牌

时间:2013-11-24 20:52:23

标签: facebook facebook-graph-api facebook-access-token

我在生成长期访问令牌以从桌面应用程序更新Facebook页面时遇到问题。

我创建了一个与我的Facebook用户关联的Facebook应用程序,并存储了它的app id和secret。

我创建了一个与我的Facebook用户帐户相关联的Facebook页面。

我可以为我的应用创建一个短暂的(60分钟)访问令牌。

我的桌面应用程序可以使用短期访问令牌发布到我的Facebook页面。但是,这只持续60秒,因此是不切实际的。

我一直在尝试使用此处的指南生成长期访问令牌:

Request a Page Access Token in C# SDK

但是我收到错误:

“访问令牌不属于应用程序XXXXXXXXXXXXXXX”

当我尝试在调试工具框中输入我的短期访问令牌时,它确认访问令牌是我的,但它显示了不同的应用ID。

这个不同的app id来自哪里?我只定义了一个Facebook应用程序。

我想我可能在这里错过了一个基本点。

非常感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:5)

返回生成令牌的Graph API资源管理器。

确保您从顶部的下拉菜单中选择了您的应用程序"应用程序[?]"

如果您不是默认使用图形API资源管理器'这对你没用。获得为正确应用制作的令牌后,请使用以下网址重试: (用正确的数据替换NNNN)

https://graph.facebook.com/oauth/access_token?client_id=NNNN&client_secret=NNNN&grant_type=fb_exchange_token&fb_exchange_token=NNNN

答案 1 :(得分:1)

步骤是:

  1. Generate app token,其中包含以下Graph API调用:

    GET / oauth / access_token?      CLIENT_ID = {应用ID}     &安培; client_secret = {应用秘密}     &安培; grant_type = client_credentials

  2. 使用以下Graph API调用
  3. Exchange received token获取长期令牌(60天):

    GET / oauth / access_token?
        grant_type = fb_exchange_token&安培;
        CLIENT_ID = {应用ID}&安培;     client_secret = {应用秘密}&安培;     fb_exchange_token = {short-lived-token}

  4. 将为您提供与您的应用相关联的长期令牌。如果您想在页面上发布,那么您需要获取页面访问令牌 - 有关详细信息,请参阅此处:https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens

    1. 对用户进行身份验证并请求manage_pages权限
    2. 从(1)获取用户管理的页面列表:https://graph.facebook.com/me/accounts?access_token=USER_ACCESS_TOKEN
    3. 解析列表并获取令牌 - 并使用它发布到Feed。
    4. 您将在图形API资源管理器中执行(1) - 您将获得用户令牌。然后将该令牌插入到(2)中的URL中 - 您将看到所有页面和相应的令牌。拿一个你需要的,并在你的C#代码中使用它来上传图像。