【问题标题】:(#100) Missing permissions error in Facebook API clarification(#100) Facebook API 说明中缺少权限错误
【发布时间】:2023-01-08 21:09:49
【问题描述】:

问题描述:

  • 我们在提取 Facebook 帐户广告时收到 (#100) 缺少权限错误 使用 Python 中的 Graph API 以编程方式生成的访问令牌来洞察数据。
  • 后来我们在应用程序中生成了具有 ads_read 和 insights_read 权限的访问令牌,我们能够成功提取数据。

问题:

1.我们如何在 python 中使用 Graph API 以编程方式生成具有权限的访问令牌? 2.哪种代币适合提取广告帐户洞察数据?

error message:
{
      "error": {
        "message": "(#100) Missing permissions",
        "type": "OAuthException",
        "code": 100,
        "fbtrace_id": "A4vPClDlI__dFmxxhiVVGRG"
      }
    }

访问令牌生成代码示例:

import requests

def get_fb_token(app_id, app_secret):
    url = 'https://graph.facebook.com/oauth/access_token'
    payload = {
        'grant_type': 'client_credentials',
        'client_id': app_id,
        'client_secret': app_secret
    }
    response = requests.post(url, params=payload)
    return response.json()['access_token']


app_id = 'XXXXXXXXXXXXXXX'
app_secret = 'XXXXXXXXXXXXXXXXX'

data_request = get_fb_token(app_id, app_secret)
print(data_request)

笔记:

  • 我们也尝试过传递 scope:ads_read,但我们遇到了同样的错误。
  • 我们也尝试过 Facebook -SDK 包,但我们得到的是相同的访问令牌。

【问题讨论】:

  • 我认为您需要打开一个浏览器并向该端点发出获取请求...这将向用户显示一个 oauth 授权屏幕,然后使用您可以发送的令牌重定向回以交换实际可用的令牌.. .通常你不能只发布一些东西到oauth端点......所有用户凭据必须在facebook登录表单中输入并且通常不能只是在帖子中传递
  • 我需要它以编程方式,以使用 python 的自动化方式。
  • 您可以使用 selenium 打开并使用它来填充登录凭据

标签: python facebook-graph-api facebook-marketing-api


【解决方案1】:

最简单:如果您的 BM 有权访问该广告帐户 使用System User流。

  1. 创建系统用户。
  2. 从 BM 页面生成并复制长期存在的令牌并将其粘贴到您的服务器中。 (这永远不会过期)
  3. 分配您想要以编程方式或手动方式访问的广告帐户(或任何其他资产)。

    标准方法:Oauth2 流程。

    1. 当用户加入您的系统时,要求他们通过 FB 登录并将短期令牌发送到后端服务器。 OAuth2
    2. Exchange FB 长寿令牌的短期令牌。长寿命令牌的有效期为 60 天。

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 2017-03-04
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多