Приведение необходимого sdk к переменной RequireJS - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь внедрить бизнес-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

Не уверен, что я могу сделать, чтобы это произошло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...