====== Работа с Extend API ====== При создании секции сайта GetSimple Extend был разработан интерфейс (API) , позволяющий разработчикам получать данные из профиля в этой секции и интегрировать их в сайт или плагин. Например, разработчик теперь имеет возможность добавлять в плагины функционал автоматической проверки наличия обновления для своего плагина в Extend. ===== Синтаксис ===== **Запрос к репозиторию по ID плагина: ** http://get-simple.info/api/extend/?id=## Замените ''##'' на ID плагина, присвоенного ему в репозитории Extend. Определить ID можно, залогинившись в Extend и посмотрев ID соответствующего файла. Например, ''http://get-simple.info/api/extend/?id=160'' даст ответ по плагину I18N Gallery.Такой способ дает 100% гарантию верного результата, так как ID плагина //никогда// не меняется вплоть до удаления плагина из репозитория. [[http://get-simple.info/api/extend/?id=30|Еще один пример]]. **Запрос по имени основного файла плагина: (только для плагинов)** http://get-simple.info/api/extend/?file=#####.php Замените ''#####.php'' наименованием файла вашего плагина. Для того, чтобы данный метод работал корректно, перед загрузкой в Extend ваш плагин должен быть корректно упакован и структура его [[ru:plugins:update_notifications|соответствующим образом организована]]. Кроме того, данный способ требует, чтобы имя файла вашего плагина было уникальным для Extend, учитывайте этот аспект, когда будете присваивать наименование своему плагину. Процедура проверки обновления плагинов, применяемая в GS v3.1+ также требует, чтобы имя главного файла плагина было уникальным. Пример ответа можно посмотреть [[http://get-simple.info/api/extend/?file=translate.php|здесь]]. ===== Формат ответа API ===== Результат запросов к Extend API отдается в формате json и выглядит следующим образом: {"status":"successful","id":"112","filename_id":"translate.php","name":"Translate","version":"0.3","category":"Plugin","tags":"translation, languages, internationalization, i18n","tested_with":"2.03","updated_date":"March 25, 2011","support_url":"http:\/\/get-simple.info\/forum\/topic\/1610\/translation-plugin\/","author_url":"http:\/\/mvlcek.bplaced.net","owner":"mvlcek","path":"http:\/\/get-simple.info\/extend\/plugin\/translate\/112\/","file":"http:\/\/get-simple.info\/extend\/export\/2902\/112\/translate.zip","downloads":"80","rating":""} Так как мы получаем ответ в формате json, мы можем превратить его в PHP-объект с помощью ''json_decode($response)''. В результате мы получим следующий массив: stdClass Object ( [author_url] => http=>//mvlcek.bplaced.net [category] => Plugin [downloads] => 80 [file] => http=>//get-simple.info/extend/export/2902/112/translate.zip [filename_id] => translate.php [id] => 112 [name] => Translate [owner] => mvlcek [path] => http=>//get-simple.info/extend/plugin/translate/112/ [rating] => 4.8 [status] => successful [support_url] => http=>//get-simple.info/forum/topic/1610/translation-plugin/ [tags] => translation, languages, internationalization, i18n [tested_with] => 2.03 [updated_date] => March 25, 2011 [version] => 0.3 ) ===== Пример PHP-кода ===== Этот фрагмент выведет номер последней версии нашего примера для плагина с ID = 30. $my_plugin_id = 30; // замените своим ID $apiback = file_get_contents('http://get-simple.info/api/extend/?id='.$my_plugin_id); $response = json_decode($apiback); if ($response->status == 'successful') { // Successful api response sent back. $current_ver = $response->version; } echo $current_ver; ===== Ограничения ===== Кэш Extend API обновляется один раз в четыре часа. Это сделано для уменьшения нагрузки на сервер, посему проверку обновления стоит осуществлять, принимая во внимание этот временной интервал. Разработчики советуют ответственно подходить к работе с Extend API дабы не создавать излишнюю нагрузку. ====== Ссылки ====== На главную [[ru:|Содержание]] ===== Страницы этой секции ===== === Разработка плагинов === *[[ru:plugins:creation|Создание плагинов ]] *[[ru:plugins:hooks_filters|Хуки и фильтры]] *[[ru:plugins:tabs_menus|Вкладки и боковые меню]] *[[ru:plugins:tips|Советы и рекомендации]] *[[ru:plugins:update_notifications|Взаимодействие плагинов и секции Extend сайта get-simple.info]]