1,想要获取长期(60天) 有效页面令牌,需要先获取长期的用户令牌

1. 用户访问令牌转长期访问令牌

如果你有一个用户短期访问令牌(通常有效期为 1小时),可以通过以下步骤生成长期访问令牌:

Step 1: 获取短期访问令牌

通过 Facebook 登录流程获得用户的短期访问令牌。

Step 2: 通过 Graph API 转换

使用以下 URL 替换 your-app-idyour-app-secret,访问此链接:

https://graph.facebook.com/v21.0/oauth/access_token
?grant_type=fb_exchange_token
&client_id=your-app-id
&client_secret=your-app-secret
&fb_exchange_token=short-lived-access-token

参数说明

  • client_id:应用的 App ID
  • client_secret:应用的 App Secret
  • fb_exchange_token:短期访问令牌

示例结果

{
  "access_token": "your-long-lived-access-token",
  "token_type": "bearer",
  "expires_in": 5184000
}

expires_in: 5184000 秒(约 60 天)

 

2. 获取长期页面访问令牌

页面令牌是通过用户令牌生成的,以下是步骤:

Step 1: 获取用户的长期访问令牌

确保已完成上面的用户令牌转换,得到一个长期用户访问令牌。

Step 2: 使用长期用户令牌获取页面令牌

调用以下 API:

https://graph.facebook.com/v21.0/me/accounts
?access_token=your-long-lived-user-access-token

示例结果

{
  "data": [
    {
      "access_token": "your-page-access-token",
      "category": "Website",
      "name": "Your Page Name",
      "id": "123456789"
    }
  ]
}

access_token: 即长期页面访问令牌。

 

3. 验证令牌有效期

可以通过 Graph API 调用以下接口验证令牌信息:

https://graph.facebook.com/debug_token
?input_token=your-access-token
&access_token=your-app-access-token

参数说明

  • input_token: 你想检查的访问令牌。
  • access_token: 你的 App 的访问令牌(app_id|app_secret 格式)。
{
  "data": {
    "app_id": "123456",
    "type": "USER",
    "expires_at": 1699587200, // 过期时间戳
    "is_valid": true,
    "scopes": ["email", "public_profile"]
  }
}

注意事项

  1. 长期令牌限制:长期用户令牌有效期为 60 天,但页面访问令牌理论上是永久的。
  2. 定期刷新令牌:长期令牌快到期时,重复上述步骤生成新的长期令牌。
  3. 权限管理:确保生成令牌的用户有对应页面的管理权限,否则无法生成页面访问令牌。