Skip to content
forked from aik27/inwidget

InWidget: show pictures from instagram.com on your site!

Notifications You must be signed in to change notification settings

kirpen/inwidget

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

/**
 * Project:     inWidget: show pictures from instagram.com on your site!
 * File:        readme.txt
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of MIT license
 * http://inwidget.ru/MIT-license.txt
 *
 * @link http://inwidget.ru
 * @author Alexandr Kazarmshchikov
 * @version 1.0.2
 * @package inWidget
 *
 */

// ----------------------------------------
// Установка виджета на сайт:
// ----------------------------------------

1. Зарегистрируйте ваш сайт в instagram.com:

Для этого идём на instagram.com и аторизируемся под своим аккаунтом. Далее переходим в раздел API.
Вот прямая ссылка: http://instagram.com/developer/. Вас интересует раздел «Управлять программами». 
В нём вам требуется зарегистрировать новое приложение (ваш сайт), от лица которого и будет работать виджет. 
Так что переходим в этот раздел. Нажимаем кнопку «Регистрация новой программы» и заполняем форму:

* Application Name – название вашего приложения. Можете написать название сайта;
* Description – описание приложения;
* Website – URL-адрес вашего сайта;
* OAuth redirect_uri – URL на который перейдёт пользователь после авторизации.

Т.к. у вас просто виджет и никого авторизовывать вы не будете, можно просто продублировать адрес сайта.

Дальше нажимаем кнопку «Register». После регистрации вы получаете два хэш-ключа. 
Вас интересует CLIENT ID. Он потребуется для настройки виджета.

2. Загрузите исходный код виджета в корень вашего сайта:

Для этого скачайте архив с исходным кодом виджета. Извлеките папку /inwidget из архива. 
Загрузите папку /inwidget в корень вашего сайта со всеми файлами внутри.

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

3. Установите права на запись для папки /inwidget/cache:

Instagram разрешает отправлять лишь 5000 запрос в час к своему API
В папке /inwidget/cache виджет будет хранить кэшированные данные.
Если для директории будут отсутствовать права на запись, вы увидите ошибку ERROR #101.

4. Настройте виджет:

Отредактируйте файл /inwidget/config.php
Вам потребуется указать логин в Instgram и CLIENT_ID вашего приложения.

Список параметров:

* LOGIN – логин аккаунта в инстаграм из которого будут транслироваться фотографии.
* CLIENT_ID – хэш-ключь выданный при регистрации приложения в Instagram.
* HASHTAG – хэш-тег для поиска фотографий. Если вы хотите транслировать фотографии других пользователей, либо вывести фотографии с очень специфичным тегом, используйте эту опцию. Выборка фотографий будет производиться со всего мира в порядке того, как фотографии были отмечены искомым тегом. Обратите внимание, что тулбар с аватаркой и статистикой будет автоматически скрыт.
* title – заголовок виджета.
* imgCount – сколько фотографий запрашивать из Instagram. Влияет на размер кэша.
* expiration – через сколько часов обновлять кэш.

5. Вставьте виджет в сайт с помощью следующего кода:

<!-- По умолчанию -->
<iframe src='/inwidget/index.php' scrolling='no' frameborder='no' style='border:none;width:260px;height:330px;overflow:hidden;'></iframe> 

Ещё примеры вставки с различным отображением виджета: 

<!-- Без профиля -->
<iframe src='/inwidget/index.php?toolbar=false' scrolling='no' frameborder='no' style='border:none;width:260px;height:320px;overflow:hidden;'></iframe>

<!-- Мини 1 -->
<iframe src='/inwidget/index.php?width=100&inline=2&view=12&toolbar=false' scrolling='no' frameborder='no' style='border:none;width:100px;height:320px;overflow:hidden;'></iframe>

<!-- Мини 2 -->
<iframe src='/inwidget/index.php?width=100&inline=1&view=3&toolbar=false' scrolling='no' frameborder='no' style='border:none;width:100px;height:320px;overflow:hidden;'></iframe>

<!-- Горизонтальная ориентация -->
<iframe src='/inwidget/index.php?width=800&inline=7&view=14&toolbar=false' scrolling='no' frameborder='no' style='border:none;width:800px;height:295px;overflow:hidden;'></iframe>

<!-- Крупные preview -->
<iframe src='/inwidget/index.php?width=800&inline=3&view=9&toolbar=false&preview=large' scrolling='no' frameborder='no' style='border:none;width:800px;height:850px;overflow:hidden;'></iframe> 

// ----------------------------------------
// Точная настройка отображения виджета:
// ----------------------------------------

Параметры передаются как GET переменные при обращении к скрипту виджета.
К примеру, чтобы уставить ширину виджета 600px и вывести в строку пять фотографий, нужно добавить соотвествующие параметры в URL к скрипту. Т.е.: /inwidget/index.php?width=600&inline=5 

Список параметров:

width – ширина виджета (по умолчанию 260px);
inline – количество фотографий в строке (по умолчанию 4 шт.);
view – сколько фотографий отображать в виджете (по умолчанию 12 шт., максимально 30 шт., можно исправить в config.php);
toolbar – отобразить тулбар с аватаркой и статистикой (значения true/false, по умолчанию true);
preview – размер и качество изображений (small – маленькие до 150px, large – большие до 306px, fullsize – полноразмерые до 640px, по умолчанию стоит small)

При изменении ширины или количества фотографий не забудьте изменить размер iframe. 

// ----------------------------------------
// Коды ошибок:
// ----------------------------------------

[*] ERROR #101 - не удаётся получить доступ к файлу с кэшем. Нужно изменить права на директорию /inwidget/cache 

Если файл не существует, виджет пытается создать его. Если файл существует, виджет пытается открыть его на чтение и запись. 
Отсутствие прав на создание, чтение или запись файлов в директорию /inwidget/cache вызовет ошибку. 
Если до изменения прав на директорию в ней уже был файл с кэшем, просто удалите его, т.к. на него также установлены некорректные права.

[*] ERROR #102 - не удаётся получить время последнего изменения файла. Возможно, данная функция ограниченна или не поддерживается файловой системой вашего сервера. 

Для того, чтобы определить, актуален ли ещё кэш, виджет использует время последнего изменения файла в папке /inwidget/cache. Если не удаётся определить время, кэш всегда будет неактуальным, что приведёт к постоянным запросам к API Instagram.

[*] ERROR #103 - не удаётся отправить запрос к API Instagram. На вашем сервере не установлен cURL. Также не удалось отправить запрос с помощью функции file_get_contents(). 

Установите cURL, либо присвойте в настройках php.ini параметру allow_url_fopen значение true и подключите расширение openssl, т.к. отправка запросов идёт по протоколу https.

[*] ERROR #401 - не удалось получить ответ от API Instagram. Отправлен некорректный запрос, сайт временно недоступен или IP вашего сервера заблокирован Instagram.

К сожалению, API Instagram далёк от совершенства. На дефолтных настройках виджет отправляет всего 12 запрос в день. Были случаи, когда Instagram блокировал IP адрес сервера без объяснения причин. Вопрос решается через обращение в тех.поддержку. Виджет запишет ошибку в файл с кэшем и не будет отправлять запросы, пока не истечёт срок актуальности кэша. Чтобы отправить запрос немедленно, просто удалите файл с кэшем. Кроме ошибки виджет запишет ответ API Instagram вырезав все HTML-теги. Если вы увидите в ответе ошибку 500, скорее всего ваш IP заблокирован.

[*] ERROR #402 - ответ сервера Instagram не содержит данных. Указан некорректный логин пользователя или CLIENT_ID приложения в файле /inwidget/config.php

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

[*] ERROR #403 - ответ сервера не содержит фотографий.

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

// ----------------------------------------
// История версий:
// ----------------------------------------

inWidget-1.0.2
Дата: 01 августа 2014 г.

Добавлена возможность вывода фотографий по хэш-тегу.

inWidget-1.0.1
Дата: 28 июля 2014 г.

* Переписан механизм кэширования. Теперь используется файл, а не база данных.
* Размер кэша уменьшен в 10 раз.
* Скорость работы виджета увеличилась в 2 раза.
* Ошибки стали более информативными. Появились коды ошибок и пояснения.
* Картинки оформления встроены прямо в CSS, чтобы уменьшить количество запросов к серверу.
* Улучшена стабильность, произведён рефекторинг кода и исправлены мелкие баги.

inWidget-1.0.0
Дата: 23 января 2014 г.

С этой версии всё началось. Кэширование производится в базу данных MySQL.
Актуальная инструкция для этой версии содержится в архиве.

// ----------------------------------------
// Ваши отзывы, вопросы и предложения:
// ----------------------------------------

Посетите сайт виджета: http://inwidget.ru
Пишите на aik@inwidget.ru или свяжитесь со мной Вконтакте http://vk.com/vanzan
Присоединяйтесь к разработке виджета на GitHub: https://github.com/aik27/inwidget

About

InWidget: show pictures from instagram.com on your site!

Resources

Stars

Watchers

Forks

Packages

No packages published