Я пытаюсь написать скрипт node.js для создания набора аудиторий Facebook на основе структуры URL, но я получаю сообщение об ошибке ниже, и я не могу определить, что не так с JSON I 'm отправка:
Ошибка, которую я получаю: FacebookRequestError: Invalid rule JSON format: Invalid rule JSON format.
Кажется, что свойство 'rule' объекта 'params' каким-то образом недопустимо, но я не могу определить, чтоне так с этим.Я даже попытался скопировать их пример из документации , и это дало ту же ошибку.Я также вставил JSON в обозреватель API , и редактор там указал допустимый JSON, но ответ API был таким же.
снимок экрана api explorer
Прочитав этот похожий вопрос , я попробовал несколько вариантов, используя одиночные и двойные кавычки, JSON. Стригирование всего этого, его части, ничего, и т. Д ... Я надеюсь,свежие глаза могут поймать его.
Мой код:
"use strict";
const bizSdk = require("facebook-nodejs-business-sdk");
const AdAccount = bizSdk.AdAccount;
const CustomAudience = bizSdk.CustomAudience;
const access_token = "REDACTED";
const app_secret = "REDACTED";
const app_id = "REDACTED";
const id = "act_REDACTED";
const pixelID = "REDACTED";
const api = bizSdk.FacebookAdsApi.init(access_token);
const showDebugingInfo = true; // Setting this to true shows more debugging info.
if (showDebugingInfo) {
api.setDebug(true);
}
const logApiCallResult = (apiCallName, data) => {
console.log(apiCallName);
if (showDebugingInfo) {
console.log("Data:" + JSON.stringify(data));
}
};
let fields, params;
fields = [
];
params = {
"name": "Website - Viewed Product - Corrugated Containers - 180 days",
"rule": {
"inclusions": {
"operator": "or",
"rules": {
"inclusions": {
"operator": "or",
"rules": [
{
"event_sources": [
{
"id": pixelID,
"type": "pixel"
}
],
"retention_seconds": 8400,
"filter": {
"operator": "and",
"filters": [
{
"field": "url",
"operator": "i_contains",
"value": "/products/corrugated-containers"
}
]
}
}
]
}
}
}
},
"retention_days": "180",
"prefill": "1"
};
const customaudiences = (new AdAccount(id)).createCustomAudience(
fields,
params
);
logApiCallResult("customaudiences api call complete.", customaudiences);