Есть ли у Instagram Reels API для разработчиков?

Я не могу найти Instagram Reels связанные с API. Кто-нибудь знает, есть ли он или будет?

В настоящее время Facebook документация разработчика ничего не упоминает о Instagram Reels.https://developers.facebook.com/docs/instagram-api/overview/

11 ответов

В документации API Instagram в разделе "Ограничения" в настоящее время написано, что "IGTV и Reels не поддерживаются".

Катушки это IG Media с типом "ВИДЕО". И вы можете получить сингл "Reels", если знаете его идентификатор в Facebook (это не идентификатор СМИ из Instagram).

Если ролики публикуются как истории, вы можете получить список медиа из конечной точки историй(GET graph.facebook.com/{ig-user-id}/stories). Вы получите массив идентификаторов медиа.

  "data": [
    {
      "id": "{ig-media-id}"
    },
  ...
  ]
}

Затем вы можете получить информацию из одной конечной точки медиа-объекта (GET /{ig-media-id})

Так что в настоящий момент вы можете получить ролики по api только в том случае, если они опубликованы как рассказ.

В любом случае барабаны не поддерживаются в некоторых странах, и вы можете увидеть ролики только из историй в этих странах.

ОБНОВИТЬ

Барабаны также доступны, когда вы получаете пользовательские медиа из Business-Discovery(GET {ig-user-id}?fields=business_discovery.username(instagramm_user_name){media{id,permalink,media_type,media_url}}) или пользовательские медиа (GET /{ig-user-id}/media).

Если постоянная ссылка СМИ выглядит как https://www.instagram.com/reel/... и media_type VIDEO тогда это катушки.

Кажется, они попали в GET /{ig-user-id}/media и GET {ig-user-id}?fields=business_discovery.username(instagramm_user_name)конечные точки в начале, но они удалили их позже. Судя по документации, на данный момент они не поддерживаются. Дальнейшее подтверждение в этом отчете об ошибке. Кажется, это не первый раз, когда они включают узлы, которые не должны быть включены (IGTV и теперь барабаны).

Не уверен, но я немного покопался в файле Instagram .ipa и нашел эти параметры схемы URL.

instagram://reels_home
instagram://reels_share

Оба из них, если щелкнуть на ios, переместят вас в ленту барабанов. Я намерен открыть камеру барабанов (или камеру истории с режимом, установленным на барабаны), но я предполагаю, что в настоящее время мы можем получить доступ только к ленте барабанов.

Есть один способ без использования Instagram API с использованием javascript: с помощью этого JavaScript вы можете загружать Instagram Reels, сообщения, видео все из них. Я создал сайт Instagram Reels Downloader, используя этот javascript

const getMedia = () => {
  render.innerHTML = "<div class='image-placeholder'></div>";
  let url = _("input").value;

  if (url) {
    fetch(url)
      .then((r) => r.text())
      .then((r) => {
        // render html
        render.innerHTML = r;
        // wait, find meta and create video or image
        let w = setTimeout(() => {
          let v = _('meta[property="og:video"]');

          var x = document.getElementById("two");
          if (x.style.display === "none") {
            x.style.display = "block";
          }

          if (v) {
            createVideo(v);

          } else {
            let img = _('meta[property="og:image"]');
            if (img) {
              createImg(img);

            } else {
              document.body.innerHTML = body;
              alert("Error extracting Instagram image / video.");
            }
          }
          clearTimeout(w);
        }, 200);
      });


  } else {
    _("input").setAttribute(
      "placeholder",
      "Invalid address, use a proper Insagram link"
    );
  }
};

Instagram только что выпустил поддержку барабанов (доступно для всех с 7 июля 2022 года).

Подробнее здесь https://developers.facebook.com/docs/instagram-api/guides/content-publishing/

Как упоминалось ранее, Instagram не предоставляет прямых API, но вы можете воспользоваться помощью Instagrapi, он действительно потрясающий и простой в использовании. Примечание. Эта оболочка частного API Instagram написана на языке Python. Вот как это использовать - Установите библиотеку:

      python -m pip install instagrapi

Код

          from instagrapi import Client 
    cl = Client()
    #enter your username and password
    cl.login('username', 'password')
    #you can replace 10 with whatever amount of reels you want to fetch
    reel = cl.explore_reels(amount = 10)
    print(reel)

Вот и все !!!

Instagram Reels API теперь общедоступен:

https://developers.facebook.com/blog/post/2022/06/27/introduction-reels-apis-to-instagram-platform/

Вы можете сделать запланированную публикацию. Например, с помощью JavaScript и загрузки видео в Reels API[1]:

      const access_token = "Js82ks92jald"; // The access token given from FB
const instagram_user_id = "12345";   // The IG user's ID
const reelUrl = "https://www.website.com/reel.mp4";
const caption = "This is the best real ever #Reels4Real";

const postUrl = `https://graph.facebook.com/${instagram_user_id}/media?video_url=${encodeURIComponent(reelUrl)}&caption=${encodeURIComponent(caption)}&access_token=${access_token}&media_type=REELS&share_to_feed=true&thumb_offset=2000`;

const postOptions = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
};

fetch(postUrl, postOptions)
      .then((res) => res.json())
      .then(json => console.log(json))
      .catch(console.error);

Обратите внимание на ключевые поля media_type=REELS, video_url и заголовок.

[1] https://www.ayrshare.com/instagram-reels-api-how-to-post-videos-to-reels-using-a-social-media-api/

Наа,

Instagram пока не предоставляет API для барабанов, так как функция катушки по-прежнему недоступна во многих странах, но она будет доступна в ближайшее время.

Возникает вопрос, как мы можем получить данные о барабанах через API?

Что ж, ответ - вы не можете, Но! Если вы за то, чтобы сделать что-то поскальпированное, то ответ определенно - да!

Но как?

Все мы знаем, что очистка требует больших усилий, потому что вещи меняются очень часто. и если вас это не волнует, ниже приведен пример сценария PHP для получения данных барабанов в JSON.

      <?php

//!IMPORTANT
$sessionid = ["Cookie: sessionid=YOUR SESSION ID HERE"];

// REELS SHORT CODE FROM URL
$shortcode = null;

$response = [];

/**
 * Get a web file (HTML, XHTML, XML, image, etc.) from a URL.  Return an
 * array containing the HTTP server response header fields and content.
 */
function get_web_page($url)
{
    $user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
    $options    = array(
        CURLOPT_CUSTOMREQUEST  => "GET",        //set request type post or get                            
        CURLOPT_POST           => false,        //set to GET    
        CURLOPT_USERAGENT      => $user_agent,  //set user agent                                    
        # CURLOPT_COOKIEFILE   => "cookie.txt", //set cookie file                                     
        # CURLOPT_COOKIEJAR    => "cookie.txt", //set cookie jar                                     
        CURLOPT_HTTPHEADER     => $sessionid,   // sending manually set cookie                                   
        CURLOPT_RETURNTRANSFER => true,         // return web page                                
        CURLOPT_HEADER         => false,        // don't return headers                                
        CURLOPT_FOLLOWLOCATION => true,         // follow redirects                                
        CURLOPT_ENCODING       => "",           // handle all encodings                            
        CURLOPT_AUTOREFERER    => true,         // set referer on redirect                                
        CURLOPT_CONNECTTIMEOUT => 120,          // timeout on connect                            
        CURLOPT_TIMEOUT        => 120,          // timeout on response                            
        CURLOPT_MAXREDIRS      => 10,           // stop after 10 redirects                            
    );
    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    $err     = curl_errno($ch);
    $errmsg  = curl_error($ch);
    $header  = curl_getinfo($ch);
    curl_close($ch);
    $header['errno']   = $err;
    $header['errmsg']  = $errmsg;
    $header['content'] = $content;
    return $header;
}

if ((isset($_GET['q'])) && !empty($_GET['q'])) {

    $shortcode = $_GET['q'];
    $reels_url = "https://www.instagram.com/p/$shortcode/?__a=1";

    // read a web page and check for errors:
    $result = get_web_page($reels_url);

    if ($result['errno'] != 0) {
        $response = json_encode(['error' => "bad url, timeout, redirect loop"]);
    }

    if ($result['http_code'] != 200) {
        $response = json_encode(['error' => "no page, no permissions, no service"]);
    }
    
    if ($result['http_code'] === 200) {
        $response = $result['content'];
    }

}

// JSON OUTPUT OR ERROR HERE
header('Content-Type: application/json');
echo $response;

Как использовать этот скрипт PHP?

Сохраните приведенный выше сценарий в файле PHP, например fetch-reels.phpи запустите его как http://localhost/fetch-reels.php?q={SHORT-CODE}

URL-адрес барабанов, например

  1. https://www.instagram.com/p/COlKxQLAM11
  2. https://www.instagram.com/reel/COlKxQLAM11/?igshid=12f6j9a1dfx2x

Meta только что выпустила Reels API для платформы Instagram.

https://developers.facebook.com/blog/post/2022/06/27/introduction-reels-apis-to-instagram-platform/

Обновление (14 июля 2022 г.): Meta (Facebook) запустила поддержку Reels через свой официальный Graph API. Подробнее об этом читайте здесь: https://developers.facebook.com/docs/instagram-api/reference/ig-user/media#reel-specifications .

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