我正在使用Facebook Marketing API向Facebook发布链接广告 . 这包括使用特定广告(广告)帐户,应用(开发者级别)和访问令牌创建广告系列,广告集和广告创意 . 当我发布到由我们的组织(我们的业务经理)管理的页面时,这一切都很有效 . 问题是,我似乎无法弄清楚如何发布除我们自己以外的其他网页的广告,或将其他网页作为广告的“发件人” .

我们的流程如下:

  • 用户登录我们的网站并进入Facebook广告部分 .

  • 提示用户登录/连接到Facebook并授权我们的应用程序 . 我们要求的当前权限是public_profile和publish_pages(但我尝试添加更多,例如ads_management但没有成功) .

  • 然后,用户通过选择图片,文字,预算,持续时间等来制作广告 .

  • 成功(希望如此) .

我们有什么:

  • Facebook广告帐户(由Facebook Business Manager管理) .

  • Facebook应用程序(在开发者模式下),即上述广告帐户"connected"(具有授权广告帐户ID中的广告ID) .

  • 在Business Manager中生成的管理员系统用户访问令牌 . 该用户可以访问我们自己的页面和应用程序 . 如果我调试此令牌,我可以看到它确实引用了正确的Facebook应用程序 . 来自服务器的所有API调用(例如,创建广告)都是使用此访问令牌进行的 .

我正在尝试进行的调用(对于不属于我们的页面失败)基本上是一个HTTP POST到https://graph.facebook.com/v2.9/act_xxxxxx/adcreatives,如下所示:

{
  "accessToken": "abc123",
  "name": "Test",
  "objectStorySpec": {
    "linkData": {
      "link": "http://www.a-link.com",
      "name": "Test",
      "description": "Testing",
      "message": "Testing",
      "picture": "http://www.a-link-to-a-picture.com/image.jpg"
    },
    "pageId": "12345678554"
  }
}

我从Facebook收到的错误消息是:“应用程序没有此操作的权限”