$client_id = '***';
$client_secret = '***';
$base_url = 'https://api.instagram.com/v1/subscriptions/';
$callback_url = 'https://сайт/callback.php';
$data = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'object' => "user",
'aspect' => "media",
'verify_token' => 'token',
'callback_url' => $callback_url
);
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, $base_url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
$result = curl_exec($curl);
curl_close($curl);
print_r($result);
}
define('ACCESS_TOKEN','токен_с_инстаграмма_1');
if (isset ($_GET['hub_challenge'])){
echo $_GET['hub_challenge'];
to_log($_GET['hub_challenge'],'hub.log');//пришел ответ на подписку
} else {
$content = file_get_contents('php://input');
$info = json_decode($content, TRUE);
if ($info) {
to_log($info,'requests.log'); //сохраняю колбэк инстаграмма когда выходит новая фотка. В нем ничего нужного, кроме id пользователя
$url = 'https://api.instagram.com/v1/users/'.$info[0]['object_id'].'/media/recent?access_token='. ACCESS_TOKEN;//подставляю полученный id пользователя чтобы залезть к нему в ленту
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($curl);
$result = json_decode($result); //набор из ~12 последних картинок с описаниями
curl_close($curl);
}
$text = $result->data[0]->caption->text;//описание к первому фото
$image = $result->data[0]->images->standard_resolution->url;//ссылка на первое фото
} else {
to_log('error;','error.log'); //ничего не получилось вытащить
}
}
function to_log($log,$filename) {
if(!$filename) $filename = 'default_log.txt';
$fh = fopen($filename, 'a') or die('can\'t open file');
if ((is_array($log)) || (is_object($log))) {
$updateArray = print_r($log, TRUE);
fwrite($fh, $updateArray."\r\n");
} else {
fwrite($fh, $log . "\r\n");
}
fclose($fh);
}