Показывать фотографии пользователя в Instagram на веб-сайте

Я пытаюсь показать свои последние фотографии на моем сайте. Раньше я делал это в предыдущей версии Instagram API, но теперь, когда она изменилась, я не могу.

Я создал приложение в учетной записи Instagram и выполнил все шаги аутентификации, как описано в документах, но оно всегда показывает мне экран с запросом входа пользователя. Но мне нужно показывать картинки, даже если пользователь не авторизован, возможно ли это в этой новой версии API?

PS. Я использую PHP на стороне сервера.

Спасибо.


person Leonardo Oberle    schedule 07.12.2015    source источник
comment
добавьте фрагмент кода и ответ от API   -  person saurabh kamble    schedule 07.12.2015
comment
Я делаю, как описано в документах. Я получаю доступ к этому адресу с правильным client_id и redirect_url: api.instagram.com/oauth/authorize/ И он показывает мне экран входа и аутентификации. Проблема в том, что мне нужен токен доступа для показа фотографий, но я не могу получить его без входа в систему.   -  person Leonardo Oberle    schedule 07.12.2015
comment
так что вы хотите показать все ваши фотографии человеку, посещающему ваш сайт правильно   -  person saurabh kamble    schedule 07.12.2015
comment
Да, это правильно.   -  person Leonardo Oberle    schedule 07.12.2015
comment
Не знаю, будет ли это полезно для вас, но я наткнулся на этот сайт, который предлагает бесплатную ленту в Instagram. виджеты, которые вы можете встроить на свой сайт. Они обновили свое приложение, чтобы оно соответствовало новым изменениям API Instagram.   -  person Vince    schedule 04.06.2016


Ответы (2)


Вы можете получить все посты пользователя в Instagram с помощью его аутентификации. Без аутентификации вы не сможете ввести данные пользователя в новую систему API. В новом API вы можете получить URL-адрес его поста и сохранить его в своей базе данных. Затем вы можете показать изображение по этому URL-адресу.

person Anik Saha    schedule 07.12.2015
comment
Понимаю. Но нельзя ли показать свои фотографии на моем собственном сайте для всех незарегистрированных? Разве я не могу сделать, как раньше, когда я мог войти в систему, используя токен, и не запрашивать вход у зрителя? - person Leonardo Oberle; 07.12.2015
comment
После входа в систему вы можете получить свой собственный токен аутентификации. Используя этот токен, вы можете показать изображение каждому. - person Anik Saha; 07.12.2015
comment
Итак, мне нужно, чтобы мой пользователь вошел в систему, прежде чем увидеть мои фотографии. Я просто получаю этот токен, если они входят в систему. Я не могу войти сам и сохранить этот токен для всех. - person Leonardo Oberle; 07.12.2015
comment
Нет, вам не нужно этого делать. Вам просто нужно сохранить свой собственный токен. Ваш пользователь может видеть ваше изображение по вашему токену аутентификации - person Anik Saha; 07.12.2015
comment
К сожалению, я не могу этого сделать... Посмотрите, что написано на их веб-сайте: API Instagram требует аутентификации, в частности запросов, сделанных от имени пользователя. Аутентифицированные запросы требуют access_token. Эти токены уникальны для пользователя и должны храниться в безопасном месте. Токены доступа могут истечь в любое время в будущем. ... не думайте, что ваш access_token действителен вечно. - person Leonardo Oberle; 07.12.2015
comment
Как вы сказали, это законный путь. Перейдите на страницу apigee.com/console/instagram и создайте свой токен. Используйте свой токен, чтобы показывать свои фотографии другим. Обновляйте это каждую неделю. Хотя это был очень плохой способ. - person Anik Saha; 07.12.2015
comment
:/ Ok. К сожалению, я не мог сделать это таким образом. Это клиентский веб-сайт, и я не могу сделать это для всех своих веб-сайтов. Думаю, мне придется перестать показывать фотографии из Instagram на сайте. - person Leonardo Oberle; 07.12.2015

<?php
  function fetchData($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
  }
  $result = fetchData("https://api.instagram.com/v1/users/ID-GOES-HERE/media/recent/?access_token=TOKEN-GOES-HERE");
  $result = json_decode($result);
  foreach ($result->data as $post) {
    // Do something with this data.
  }
?>

источник

person saurabh kamble    schedule 07.12.2015
comment
Здорово! Эта часть меня устраивает, но как получить access_token? API просто дает этот токен, если пользователь вошел в систему и принимает приложение в своей учетной записи. Мне нужно показать фотографии всем моим посетителям. - person Leonardo Oberle; 07.12.2015
comment
@LeonardoOberle проверьте ссылку на источник, там приведен пример - person saurabh kamble; 07.12.2015
comment
Понимаю. Но проблема в том, что если я делаю так, как написано, моему посетителю необходимо войти в Instagram и принять условия приложения, прежде чем он увидит мои фотографии. Могу ли я больше не показывать свои фотографии на своем веб-сайте незарегистрированным пользователям? Даже мои фотографии общедоступны? Я не понимаю, как это сделать. - person Leonardo Oberle; 07.12.2015
comment
@LeonardoOberle вы реализуете эту логику - person saurabh kamble; 07.12.2015
comment
@LeonardoOberle stackoverflow.com/questions/12478772/ - person saurabh kamble; 07.12.2015
comment
Да, я сделал. Но это нехорошо для меня. Я хочу показывать свои общедоступные фотографии и не прошу людей входить в систему и принимать условия для этого. Просто чтобы вы знали, как работает мой веб-сайт, я показываю фотографии из инстаграма и свои твиты в нижнем колонтитуле, и я хотел бы, чтобы люди могли видеть мои фотографии так же, как они видят мои твиты. Твиттер не просит, чтобы мои пользователи вошли в систему, чтобы увидеть мои твиты, и он также использует oauth. - person Leonardo Oberle; 07.12.2015
comment
Давайте продолжим обсуждение в чате. - person Leonardo Oberle; 07.12.2015