Категория: Технология программирования

Кол-во просмотров: 3118

Теги: #python #django #html+css #javascript


Интеграция python django с api instagram

В статью внесены изменения с учетом обновления api instagram

1. Для начала необходимо узнать нам CLIENT ID нашего инстаграм аккаунта. Для этого регистрируем свое приложение на instagram api https://instagram.com/developer/

Заполняем поля:
Application Name - указываем название своего сайта (например http://ahmetshin.com)
Description - описание (например: api instagram)
Website URL - название своего сайта (например http://ahmetshin.com)
Valid redirect URIs - указываем название своего сайта (например http://ahmetshin.com)
Contact email - свой email

Внимание: В security необходимо убрать галку Disable implicit OAuth


2. Далее мы получаем CLIENT ID (c 17 ноября 2015 г этот метод недействителен, смотрите 4 пункт)

3. Следующим шагом нам нужно получить идентификатор нашей учетной записи, для этого в браузере переходим по следующему url 

https://api.instagram.com/v1/users/search?q=LOGIN&client_id=CLIENT ID
где, LOGIN - название вашего аккаунта CLIENT ID - это строка полученная в пункте 2

Выйдет страница авторизации, при успешной авторизации мы получаем json строку 

{"meta":{"code":200},"data":[{"username":"ahmetshin_dinar007","profile_picture":"https:\/\/igcdn-photos-c-a.akamaihd.net\/hphotos-ak-xaf1\/t51.2885-19\/s150x150\/11336202_972476619481882_1464630351_a.jpg" ,"id":"418392663" ," full_name":" \u0414\u0438\u043d\u0430\u0440 \u0410\u0445\u043c\u0435\u0442\u0448\u0438\u043d"}]}
где id - идентификатор вашего аккаунта

4. Далее нам нужно получить access_token.

для этого в браузере переходим по следующему url

https://instagram.com/oauth/authorize/?client_id=CLIENT ID&redirect_uri=НАЗВАНИЕ ВАШЕГО САЙТА&response_type=token

новый метод с 17 ноября

https://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token

В результате нас редиректнет на наш сайт с дополнительным get параметром #access_token - это и есть наш токен

5. Теперь переходим к нашему django приложению:

код в вьюхе

import datetime
import urllib2, json
access_token = 'токен из пункта 4'
url = 'https://api.instagram.com/v1/users/self/media/recent/?access_token=%s' % access_token


def instagram(request):
    response = urllib2.urlopen(url)
    res = response.read()
    j = json.loads(res)
    i = 0
    inst = []
    for item in j['data']:
        time = datetime.datetime.fromtimestamp(float(j['data'][i]['created_time']))
        j['data'][i]['created_time'] = time
        inst.append(j['data'][i])
        i = i+1
    return {'inst':inst}

В шаблоне  :

<link rel="stylesheet" href="/static/foto/css/default/default.css" type="text/css" />
<link href="/static/foto/css/lightbox.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="/static/foto/css/nivo-slider.css" type="text/css" /><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script>
<script src="/static/foto/js/jquery.nivo.slider.pack.js" type="text/javascript"></script>
<script src="/static/foto/js/lightbox.min.js" type="text/javascript"></script>
<script type="text/javascript">
  $(window).load(function() {
      $('#slider').nivoSlider();
  });
  </script>
      {% for item in inst %}
      <a href="{{ item.images.standard_resolution.url }}" data-lightbox="roadtrip"><img src="{{ item.images.thumbnail.url }}" class="gal" /> </a>    
      {% endfor %}

ссылка на css и js файлы: http://ahmetshin.com/static/foto.zip


В результате мы получаем на нашем сайте фотки с инстаграма

Пример работы api:

Категория: Технология программирования

Кол-во просмотров: 3118

Дата создания: 29 августа 2015 г.

Теги: #python #django #html+css #javascript