Skip to content

Instantly share code, notes, and snippets.

@ilyalazarev31
Created November 15, 2019 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ilyalazarev31/2918f774d49cdd33114450ec81763b3c to your computer and use it in GitHub Desktop.
Save ilyalazarev31/2918f774d49cdd33114450ec81763b3c to your computer and use it in GitHub Desktop.
Instagram API (Bitrix)

Выводим массив с фотками Instagram с кешированием (Bitrix)

Как получить токен инстаграм очень подробно расписано ТУТ

У скрипта нужно поменять 2 поля:

  • $inst_userid = "000000000"; - меняем на идентификатор
  • $inst_accessToken = "00000008000.0000000.00000000000000000000000000000000"; - полученный токен
<?
function instagramAgent()
{
// Аутентификация
$inst_userid = "000000000";
$inst_accessToken = "00000008000.0000000.00000000000000000000000000000000";
// Получаем данные
function fetchData($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$inst_result = curl_exec($ch);
curl_close($ch);
return $inst_result;
}
// Парсим с api и выводим массив
$inst_result = fetchData("https://api.instagram.com/v1/users/self/media/recent/?access_token=$inst_accessToken&count=7");
// Преобразовываем в массив
$inst_result = json_decode($inst_result, true);
return $inst_result['data'];
}
//Делаем пременную глобальной
//(Я думаю в коде понятней откуда корни растут данной переменной)
global $instagram_gallery;
//Создаем объект кеша (d7)
use \Bitrix\Main\Data\Cache;
$obCache = Cache::createInstance(); // получаем экземпляр класса
//Время жизни кеша
$life_time = 86000;
//Проверяем не истек ли кеш
if ($obCache->initCache($life_time, "instagram_cache")) {
$arCache = $obCache->getVars();
$instagram_gallery = $arCache["instagram_gallery"];
} else {
// Если не было кеша, то начинаем его запись. После пременная будет как ключ массива
$instagram_gallery = instagramAgent();
}
// если кеш есть, то просто выводится содержимое кеша
if ($obCache->startDataCache()) {
$obCache->endDataCache(array("instagram_gallery" => $instagram_gallery));
}
<p>Вывод:</p>
<?foreach ($GLOBALS['instagram_gallery'] as $item){?>
<div >
<a href="<?=$item['link']?>" target="_blank">
<img src="<?=$item['images']['low_resolution']['url']?>" alt="Instagram <?=$item['user']['full_name'].' - '.$item['id']?>">
</a>
</div>
<?}?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment