FacebookRequestError при попытке извлечь данные Campaign Insight через API маркетинга Facebook с помощью Python/Django

Я пытаюсь получить Campaign Insights через API маркетинга Facebook с помощью Python Business SDK и получаю ошибку FacebookRequestError:

  Message: Call was not successful
  Method:  GET
  Path:    https://graph.facebook.com/v3.1/2603111949730990/insights
  Params:  {}

  Status:  400
  Response:
    {
      "error": {
        "message": "Error accessing adreport job.",
        "type": "OAuthException",
        "code": 2601,
        "error_subcode": 1815107,
        "is_transient": true,
        "error_user_title": "Loading Async Ads Report Failed",
        "error_user_msg": "Sorry, the report cannot be loaded successfully. Please check if your job status is completed instead of failed or running before fetching the data.",
        "fbtrace_id": "BQJsdi3g5tX"
      }
    }

Я уже пытался изменить код для функции wait_for_async_job(), проверив, не является ли состояние задания "Задание завершено" и процент выполнения задания меньше 100, но проблема сохраняется.

def wait_for_async_job(async_job):
    async_job.remote_read()
    while async_job[AdReportRun.Field.async_status] != 'Job Completed' and async_job[AdReportRun.Field.async_percent_completion] < 100:
        time.sleep(1)
        async_job.remote_read()

Любая помощь приветствуется. Заранее спасибо!

1 ответ

Решение

Мы уже решили это, проблема была с условием while в wait_for_async_job. Должен быть оператор "ИЛИ", а не "И", чтобы цикл повторялся до тех пор, пока хотя бы одно из условий выполнено. Таким образом, мы проверяем, что async_status должно быть "Задание выполнено", а процент выполнения должен быть равен 100. Я оставляю ответ здесь на тот случай, если кто-то посчитает его полезным.

def wait_for_async_job(async_job):
    async_job.remote_read()
    while async_job[AdReportRun.Field.async_status] != 'Job Completed' or async_job[AdReportRun.Field.async_percent_completion] < 100:
        time.sleep(1)
        async_job.remote_read()
Другие вопросы по тегам