#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 «ЗАВЕРШЕН». Проверьте ссылку ниже для получения более подробной информации