Как опубликовать видео в Instagram как настоящий REEL

Мои пользователи прошли аутентификацию через учетную запись Instagram Business и подключили свои страницы в моем приложении. Аутентификация прошла успешно, и когда они хотят опубликовать REEL на подключенной странице в Instagram, для этого использовался следующий код:

      async function publishVideoAsReel() {
    let containerParams = new URLSearchParams();
    let mediaContainerUrl = `https://graph.facebook.com/${igUserId}/media`;
    containerParams.append('media_type', 'REELS'); //Notice here
    containerParams.append('video_url', firstMediaUrl);
    containerParams.append('thumb_offset', igVideoCoverOffset);
    containerParams.append('access_token', pageAccessToken);
    try {
        let mediaContainerResponse = await axios.post(mediaContainerUrl, containerParams);
        let { id: mediaContainerId } = mediaContainerResponse.data;
        await finalizePost(igUserId, mediaContainerId, metaData);
    } catch (e) {
        console.log('Error posting to Instagram');
        console.log(e);
    }
}

async function finalizePost(igUserId, mediaContainerId, metaData) {
    let mediaContainerStatusEndpoint = `https://graph.facebook.com/${mediaContainerId}?fields=status_code,status&access_token=${targetAccessToken}`;
    try {
        let { data: mediaContainerStatus } = await axios.get(mediaContainerStatusEndpoint);
        let { status_code, status } = mediaContainerStatus;
        if (status_code === 'ERROR') {
                //Return here
        }
        if (status_code !== 'FINISHED') {
            setTimeout(async () => {
                //Wait For 5seconds and recursively check for the status of the uploaded video
                await finalizePost(igUserId, mediaContainerId, metaData);
            }, 5000);
        } else {
            //The video has been published, finalize the post here
            try {
                let mediaPublishResponse = await axios.post(`https://graph.facebook.com/${igUserId}/media_publish?creation_id=${mediaContainerId}&access_token=${targetAccessToken}`);
                //More code omitted
            } catch (e) {

            }
        }
    } catch (e) {

    }
}

С помощью приведенного выше кода видео было успешно опубликовано на Странице как REEL, а также отображалось на вкладке REEL.

Однако пользователь сгенерировал отчет из Meta и заметил, что сообщение отображается как Type:Post, а не как тип:REEL.

Итак, я попытался проверить, изменилось ли что-нибудь в отношении публикации REEL, а затем наткнулся на эту ссылку

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

«Тема не имеет достаточных прав для публикации в таргете»

Итак, у меня 3 вопроса:

  1. Мой первоначальный код не выполнял работу по публикации в Instagram как настоящий REEL
  2. Нужно ли мне проводить рефакторинг, чтобы учесть изменения в новой ссылке https://developers.facebook.com/docs/video-api/guides/reels-publishing .https://developers.facebook.com/docs/video-api/guides/reels-publishing
  3. Однако мой первоначальный код работал отлично, когда я пытался следовать инструкциям в новых документах № 2, почему я получаю эту ошибку выше?

Спасибо

1 ответ

Похоже, ваш токен доступа к странице не имеет достаточного разрешения для публикации роликов. Вы можете отладить свой токен доступа, вставив его сюда https://developers.facebook.com/tools/debug/accesstoken.

Затем перекрестно проверьте, что ваш токен доступа имеет достаточные разрешения, необходимые для публикации ролика, как указано на следующем снимке экрана:

Другие вопросы по тегам