Загрузка видео в бизнес-аккаунт Instagram всегда возвращает сообщение об ошибке «Идентификатор носителя недоступен»

#node.js #facebook #facebook-graph-api #instagram #instagram-api

Вопрос:

Мне нужно опубликовать фотографию или видео в аутентифицированном бизнес-аккаунте Instagram.

Я получил токен доступа к бизнес-аккаунту Instagram, и теперь я хочу загрузить видео в этот аккаунт, но я продолжаю получать это сообщение об ошибке

Идентификатор носителя недоступен

Я следовал инструкциям по загрузке видео или фотографии из документов здесь https://developers.facebook.com/docs/instagram-api/guides/content-publishing /

Пожалуйста, обратите внимание, что приведенный ниже код отлично работает при загрузке фотографий, но всегда дает сбой, когда речь идет о видео.

Вот мой код после выполнения их документации:

 let mediaContainerUrl = `https://graph.facebook.com/${igUserId}/media`;
let containerParams = new URLSearchParams();
if (isPhoto) {
    containerParams.append('image_url', mediaUrl);
} else {
    containerParams.append('video_url', mediaUrl);
    containerParams.append('media_type', 'VIDEO');
}
containerParams.append('caption', caption);
containerParams.append('access_token', accessToken);
try {
    let mediaContainerResponse = await axios.post(mediaContainerUrl, containerParams);
    let { id } = mediaContainerResponse.data;

    // id above is supposed to be the creation_id needed for the next step below:

    // I can confirm that the id for the created media container was actually returned. 
    // So, it's weird for me to keep getting the Media ID not available error message.

    let mediaPublishResponse = await axios.post(`https://graph.facebook.com/${igUserId}/media_publish?creation_id=${id}amp;access_token=${access_token}`);
    let mediaPublishResponseData = mediaPublishResponse.data;
    let publishedMediaId = mediaPublishResponseData.id;
    console.log(`File uploaded to Instagram!`);

} catch (e) {
    console.log(`Instagram file upload failed miserably`);
    console.log(e);
}
 

Пожалуйста, обратите внимание, что mediaUrl вышеуказанное поступает с удаленного URL, например https://somewhere.com/video.mp4

Еще раз, загрузка фотографии с указанным выше кодом работает отлично, но никогда не работает, когда это видео. Я продолжаю получать следующее полное сообщение об ошибке:

OAuth «Платформа Facebook» «invalid_request» «Идентификатор носителя недоступен

После тщательного наблюдения я заметил, что оно действительно creation_id было сгенерировано для видео, поэтому, честно говоря, странно, что я все еще получаю вышеупомянутое сообщение об ошибке.

Пожалуйста, что я могу делать неправильно?

Я благодарен за любые предложения по решению этой проблемы.

Комментарии:

1. У нас было недавнее сообщение об ошибке, связанное с этим, которое оказалось временной проблемой developers.facebook.com/support/bugs/573962873949266 Если вы продолжаете сталкиваться с этим, пожалуйста, откройте новое сообщение об ошибке по адресу developers.facebook.com/support/bugs

Ответ №1:

Итак, вот в чем проблема. Когда вы загружаете видео в конечную точку /media, обработка видео занимает некоторое время, и в течение этого времени видео не будет доступно для публикации, поэтому конечная точка / media_publish возвращает «Идентификатор носителя недоступен». Решением этой проблемы было бы проверить статус публикации контейнера : GET: /{ig-container-id}?fields=status_code . Контейнер доступен для публикации только тогда, когда status_code «ЗАВЕРШЕН». Проверьте ссылку ниже для получения более подробной информации

Устранение неполадок при публикации контента в IG