Я пытаюсь внедрить бизнес-SDK Facebook в веб-приложение, над которым я работаю, но у меня возникли некоторые проблемы с загрузкой SDK
Uncaught Error: Module name "facebook-nodejs-business-sdk" has not been loaded yet for context: _. Use require([])
Когда вы переходите по ссылке на сайт RequireJSрешение, которое они вам дают, это дождаться загрузки SDK перед выполнением, например:
//If this code is not in a define call,
//DO NOT use require('foo'), but use the async
//callback version:
require(['foo'], function (foo) {
//foo is now loaded.
});
Проблема в том, что это не совпадает с кодом начала работы, который предоставил Facebook, показанным здесь:
const adsSdk = require('facebook-nodejs-business-sdk');
const accessToken = '*****';
const api = adsSdk.FacebookAdsApi.init(accessToken);
const AdAccount = adsSdk.AdAccount;
const Campaign = adsSdk.Campaign;
const account = new AdAccount('act_*****');
account
.createCampaign(
[],
{
[Campaign.Fields.name]: 'Page likes campaign TEST',
[Campaign.Fields.status]: Campaign.Status.paused,
[Campaign.Fields.objective]: Campaign.Objective.page_likes
}
)
.then((campaign) => {
})
.catch((error) => {
});
Если не существует способа приведения AdsSdk
к данным / значению, предоставляемому foo
, тогда я не уверен, как поступить.
Я пытался использовать:
require(['facebook-nodejs-business-sdk'], function (execute) {
const adsSdk = require('facebook-nodejs-business-sdk'); //should be loaded, but still calling twice
const accessToken = '*****';
const api = adsSdk.FacebookAdsApi.init(accessToken);
const AdAccount = adsSdk.AdAccount;
const Campaign = adsSdk.Campaign;
const account = new AdAccount('act_*****');
account
.createCampaign(
[],
{
[Campaign.Fields.name]: 'Page likes campaign TEST',
[Campaign.Fields.status]: Campaign.Status.paused,
[Campaign.Fields.objective]: Campaign.Objective.page_likes
}
)
.then((campaign) => {
})
.catch((error) => {
});
});
Вы можете посмотреть здесь: https://requirejs.org/docs/errors.html#notloaded
Не уверен, что я могу сделать, чтобы это произошло.