2

我的目标是使用 Facebook 的 Batch API 创建一些广告:https ://developers.facebook.com/docs/marketing-api/asyncrequests/v2.9

我在这个 URL 发送一个 POST 请求:

https://graph.facebook.com/v2.9/act_158365238/ads

我根据文档发送 2 个参数:

1- access_token

2-批次

批处理参数中的 JSON如下所示:

{
  "method": "POST",
  "relative_url": "v2.9\/act_158365238\/ads",
  "attached_files": "test1",
  "body": "creative={\"title\":\"Test title 1\",\"body\":\"Test body 1\",\"object_url\":\"https:\/\/apps.facebook.com\/testapp\/\", \"image_file\":\"test1.jpg\"}&targeting={\"countries\":[\"US\"]}&name=test1"
}

问题

当我使用 POSTman 或我的 PHP 代码发送此请求时,它会引发以下错误

{
  "error": {
    "message": "(#100) The parameter creative is required",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "Gj2sG7N8l1f"
  }
}

但是,当我通过 Facebook 的 Graph API 工具发送完全相同的请求时,它成功地创建了广告。

4

2 回答 2

1

根据为创建广告而提供的API 文档,您应该将其发布到 URL “v2.9/act_187687683/adcreatives” ......您正在展示的批次片段用于创建广告。

如果,如您所说,您的意图是创建一个AdCreative,那么您应该使用类似上面的内容,这与您使用 的内容不同:

         {
          "method": "POST",
          "name": "create_creative",
          "relative_url": "v2.9/act_187687683/adcreatives",
          "attached_files": "test1",
          "body": "title=Test title&body=Test body&link_url=http://www.test12345.com&image_file=test1.jpg"
         }

另一方面,如果您要创建的是添加,那么您应该考虑通过其 ID 引用AdCreative,如示例中所做的那样,因此对于在同一批次中添加的广告素材,您可以使用相对引用名称:_

         creative={\"creative_id\":\"{result=create_creative:$.id}\"}

或者,如果它是已创建的广告素材,您可以通过creative_id引用它:

         creative={\"creative_id\":\"123456\"}
于 2017-05-30T08:59:40.300 回答
0

我认为这条消息是一条红鲱鱼——它没有看到你身体的创意字段,因为 OAuth 没有在你的 POSTman 请求中正确设置,所以它没有解析正文或看到创意字段。

如果您不知道如何在 POSTman 中设置 OAuth,这里有一个很好的教程: https ://docs.brightcove.com/en/video-cloud/concepts/postman/postman.html

于 2017-06-03T22:53:47.473 回答