API: различия между версиями
Перейти к навигации
Перейти к поиску
Ein (обсуждение | вклад) (уточнение про json) |
Skiller (обсуждение | вклад) м (Добавлен упущенный параметр "boss_power".) |
||
| (не показано 29 промежуточных версий 13 участников) | |||
| Строка 1: | Строка 1: | ||
Сервер Годвилля предоставляет программный доступ к некоторым | Сервер Годвилля предоставляет программный доступ к некоторым данным героя, который можно использовать для написания своих программ-следилок. | ||
API доступен в двух видах: | API доступен в двух видах: | ||
| Строка 11: | Строка 11: | ||
godville.net/gods/api/<godname>/<token> | godville.net/gods/api/<godname>/<token> | ||
Для доступа ко второму API хозяину героя нужно получить ключ (token) в [https://godville.net/user/profile профиле] игры. Изредка ключ может сбрасываться (в этом случае приватный API превратится в открытый) | Для доступа ко второму API хозяину героя нужно получить ключ (token) в [https://godville.net/user/profile профиле] игры. Изредка ключ может сбрасываться (в этом случае приватный API превратится в открытый) — разработчикам стоит предвидеть такую ситуацию и предлагать пользователю сходить в профиль за новым. | ||
Общие моменты: | Общие моменты: | ||
* API возвращает данные только в формате JSON. | * API возвращает данные только в формате JSON. | ||
* Данные обновляются '''раз в минуту''', поэтому дергать сервер чаще смысла нет. При слишком частых запросах данные героя перестают возвращаться, выводя соответствующее уведомление. | * Данные обновляются '''раз в минуту''', поэтому дергать сервер чаще смысла нет. При слишком частых запросах данные героя перестают возвращаться, выводя соответствующее уведомление. | ||
| Строка 21: | Строка 20: | ||
{| class="wikitable collapsible sortable" | {| class="wikitable collapsible sortable" | ||
|- | |- | ||
!colspan="4" align="left" |Список ключей JSON<ref>Уточнения приветствуются.</ref> | ! colspan="4" align="left" |Список ключей JSON<ref>Уточнения приветствуются.</ref> | ||
|- | |||
! Ключ || Тип || Описание || Только с ключом? | |||
|- | |||
| activatables || Объект || Массив с перечнем активируемых трофеев в инвентаре || '''Да''' | |||
|- | |- | ||
| ark_f || Число || Число собранных тварей женского пола (только у ковчеговладельцев, max = "1000") || Нет | |||
|- | |- | ||
| | | ark_m || Число || Число собранных тварей мужского пола (только у ковчеговладельцев, max = "1000") || Нет | ||
|- | |- | ||
| | | arena_won || Число || Счетчик побед на арене || Нет | ||
|- | |- | ||
| | | arena_lost || Число || Счетчик поражений на арене || Нет | ||
|- | |- | ||
| | | arena_fight || Bool || Находится ли герой на арене/в бою с боссом/в заплыве/ или в подземелье (см. fight_type) || '''Да''' | ||
|- | |- | ||
| | | ark_completed_at || Строка || Дата постройки ковчега (есть у всех, null — если ковчег не достроен) || Нет | ||
|- | |- | ||
| | | ark_name || Строка || Название ковчега (есть у тех, кто назвал ковчег) || Нет | ||
|- | |- | ||
| | | alignment || Строка || Характер героя || Нет | ||
|- | |- | ||
| | | aura || Строка || Аура героя (без времени; отсутствует без ауры) || '''Да''' | ||
|- | |- | ||
| | | pairs_at || Строка || Дата окончания сбора тварей || Нет | ||
|- | |- | ||
| | | book_at || Строка || Дата окончания написания книги || Нет | ||
|- | |- | ||
| | | souls_at || Строка || Дата окончания сбора душ || Нет | ||
|- | |- | ||
| | | boss_name || Строка || Имя собранного в лаборатории босса || Нет | ||
|- | |- | ||
| | | boss_power|| Число || Мощь собранного в лаборатории босса || Нет | ||
|- | |- | ||
| | | bricks_cnt || Число || Количество кирпичей (в штуках, не в процентах; есть всегда, max = "1000") || Нет | ||
|- | |- | ||
| | | clan || Строка || Название гильдии героя (пустая строка, если её нет) || Нет | ||
|- | |- | ||
| | | clan_position || Строка || Звание в гильдии (если гильдии нет, то пустая строка) || Нет | ||
|- | |- | ||
| | | diary_last || Строка || Последняя запись в дневнике || '''Да''' | ||
|- | |- | ||
| | | eye_last || Строка || Последняя запись в третьем глазе || '''Да''' | ||
|- | |- | ||
| | | distance || Число || Расстояние до столицы (при нахождении в Годвилле = 0) || '''Да''' | ||
|- | |- | ||
| | | exp_progress || Число || Прогресс опыта || '''Да''' | ||
|- | |- | ||
| | | expired || Bool || показатель неактуальности данных (ключ появляется, когда данные неактуальны)<ref>Чтобы данные стали актуальными, требуется периодическое (раз в час) посещение страницы героя в браузере или одним из [[Клиент_для_Android|полноценных клиентов]]. Если ''expired = true'', то герой не посещался слишком давно и остальные данные уже не актуальны.</ref> || '''Да''' | ||
|- | |- | ||
| | | fight_type || Строка || Тип боя (см. таблицу ниже) || '''Да''' | ||
|- | |- | ||
| | | godpower || Число || Количество праны (для пенсионеров 0-200) <ref>Во время битвы с боссом (возможно и в остальных битвах при arena_fight = true) равняется нулю.</ref> || '''Да''' | ||
|- | |- | ||
| | | gold_approx || Строка || Приблизительное количество золота || '''Да''' | ||
|- | |- | ||
| | | gender || Строка || Пол героя || Нет | ||
|- | |- | ||
| | | godname || Строка || Имя бога || Нет | ||
|- | |- | ||
| | | health || Число || Здоровье героя<ref>Здоровье именно героя. Не босса и не ковчега. То есть в подземелье оно показывает актуальные данные, а вот в море и на полигоне - просто состояние героя перед началом приключения.</ref> || '''Да''' | ||
|- | |- | ||
| | | <strike>inventory</strike> || Объект || Удален, вместо него теперь 'activatables' || '''Да''' | ||
|- | |- | ||
| | | inventory_max_num || Число || Максимальный размер инвентаря (max = "50") || Нет | ||
|- | |- | ||
| | | inventory_num || Число || Количество вещей в инвентаре || '''Да''' | ||
|- | |- | ||
| | | level || Число || Уровень героя || Нет | ||
|- | |- | ||
| | | max_health || Число || Максимальный запас здоровья || Нет | ||
|- | |- | ||
| | | motto || Строка || Девиз (может быть пустой строкой) || Нет | ||
|- | |- | ||
| | | name || Строка || Имя героя || Нет | ||
|- | |- | ||
| | | pet || Объект || Объект, содержащий описание питомца (подробности ниже) || Нет | ||
|- | |- | ||
| | | quest_progress || Число || Процент выполнения задания || '''Да''' | ||
|- | |- | ||
| | | quest || Строка || Текст текущего задания || '''Да''' | ||
|- | |- | ||
| | | side_job_progress || Число || Процент выполнения подряда || '''Да''' | ||
|- | |- | ||
| side_job || Строка || Текст текущего подряда || '''Да''' | |||
|- | |||
| savings || Строка || Число сбережений (только у храмовладельцев, max = "30000 тысяч") || Нет | |||
|- | |||
| savings_completed_at || Строка || Дата окончания сбора пенсии (только у пенсионеров) || Нет | |||
|- | |||
| shop_name || Строка || Название лавки (только у пенсионеров) || Нет | |||
|- | |||
| souls_percent || Строка || Количество собранных душ в процентах (только у книжников) || Нет | |||
|- | |||
| relics_percent || Строка || Количество найденных реликвий в процентах || Нет | |||
|- | |||
| t_level || Число || Уровень героя-торговца (только у лавочников) || Нет | |||
|- | |||
| temple_completed_at || Строка || Дата окончания храма (только у храмовладельцев) || Нет | |||
|- | |||
| town_name || Строка || Город, в котором герой (пустая строка, если в поле, и нет ключа, если в бою) || '''Да''' | |||
|- | |||
| wood_cnt || Число || Количество поленьев (пока нет храма, ключ отсутствует) || Нет | |||
|- | |||
| words || Число || Число собранных слов для книги (без слогов; ключ исчезает, если есть ключ book_at) || Нет | |||
|} | |} | ||
{| class="wikitable collapsible collapsed sortable" | {| class="wikitable collapsible collapsed sortable" | ||
|- | |- | ||
!colspan="3" align="left" |Объект pet (питомец) | ! colspan="3" align="left" | Объект pet (питомец) | ||
|- | |- | ||
!Ключ || Тип || Описание | ! Ключ || Тип || Описание | ||
|- | |- | ||
|pet_class || Строка || Вид питомца | | pet_class || Строка || Вид питомца | ||
|- | |- | ||
|pet_level || Число || Уровень питомца (пустая строка, если питомец лишился уровня) | | pet_level || Число || Уровень питомца (пустая строка, если питомец лишился уровня) | ||
|- | |- | ||
|pet_name || Строка || Имя питомца (например, | | pet_name || Строка || Имя питомца (например, Пуха «Беспечный»)<ref>У контуженного питомца имя содержит "❌".</ref> | ||
|- | |- | ||
|wounded || Bool || Флаг контузии | | wounded || Bool || Флаг контузии питомца (есть только у контуженого) | ||
|} | |||
{| class="wikitable collapsible collapsed sortable" | |||
|- | |||
! colspan="3" align="left" | Типы боев | |||
|- | |||
! Ключ || Описание | |||
|- | |||
| arena || арена (ЗПГ в том числе) | |||
|- | |||
| boss || босс (мини-квест) | |||
|- | |||
| boss_m || босс (зацеп) | |||
|- | |||
| challenge || тренировка | |||
|- | |||
| dungeon || подземелье | |||
|- | |||
| multi_monster || группа монстров | |||
|- | |- | ||
| range || полигон | |||
|- | |||
| sail || морской поход | |||
|} | |} | ||
== Примечания == | |||
<references /> | <references /> | ||
[[Категория:Техническое]] | [[Категория:Техническое]] | ||
Текущая версия от 09:40, 20 июня 2025
Сервер Годвилля предоставляет программный доступ к некоторым данным героя, который можно использовать для написания своих программ-следилок.
API доступен в двух видах:
- Открытый (базовый набор сведений о герое, похожий на его персональную страницу):
godville.net/gods/api/<godname>
- Приватный (оперативный набор данных героя, известных только хозяину; работает с 15.03.2017):
godville.net/gods/api/<godname>/<token>
Для доступа ко второму API хозяину героя нужно получить ключ (token) в профиле игры. Изредка ключ может сбрасываться (в этом случае приватный API превратится в открытый) — разработчикам стоит предвидеть такую ситуацию и предлагать пользователю сходить в профиль за новым.
Общие моменты:
- API возвращает данные только в формате JSON.
- Данные обновляются раз в минуту, поэтому дергать сервер чаще смысла нет. При слишком частых запросах данные героя перестают возвращаться, выводя соответствующее уведомление.
- Массовое или частое сканирование страниц игры (в том числе API различных героев) запрещено правилами игры и может привести к блокировкам.
| Список ключей JSON[1] | |||
|---|---|---|---|
| Ключ | Тип | Описание | Только с ключом? |
| activatables | Объект | Массив с перечнем активируемых трофеев в инвентаре | Да |
| ark_f | Число | Число собранных тварей женского пола (только у ковчеговладельцев, max = "1000") | Нет |
| ark_m | Число | Число собранных тварей мужского пола (только у ковчеговладельцев, max = "1000") | Нет |
| arena_won | Число | Счетчик побед на арене | Нет |
| arena_lost | Число | Счетчик поражений на арене | Нет |
| arena_fight | Bool | Находится ли герой на арене/в бою с боссом/в заплыве/ или в подземелье (см. fight_type) | Да |
| ark_completed_at | Строка | Дата постройки ковчега (есть у всех, null — если ковчег не достроен) | Нет |
| ark_name | Строка | Название ковчега (есть у тех, кто назвал ковчег) | Нет |
| alignment | Строка | Характер героя | Нет |
| aura | Строка | Аура героя (без времени; отсутствует без ауры) | Да |
| pairs_at | Строка | Дата окончания сбора тварей | Нет |
| book_at | Строка | Дата окончания написания книги | Нет |
| souls_at | Строка | Дата окончания сбора душ | Нет |
| boss_name | Строка | Имя собранного в лаборатории босса | Нет |
| boss_power | Число | Мощь собранного в лаборатории босса | Нет |
| bricks_cnt | Число | Количество кирпичей (в штуках, не в процентах; есть всегда, max = "1000") | Нет |
| clan | Строка | Название гильдии героя (пустая строка, если её нет) | Нет |
| clan_position | Строка | Звание в гильдии (если гильдии нет, то пустая строка) | Нет |
| diary_last | Строка | Последняя запись в дневнике | Да |
| eye_last | Строка | Последняя запись в третьем глазе | Да |
| distance | Число | Расстояние до столицы (при нахождении в Годвилле = 0) | Да |
| exp_progress | Число | Прогресс опыта | Да |
| expired | Bool | показатель неактуальности данных (ключ появляется, когда данные неактуальны)[2] | Да |
| fight_type | Строка | Тип боя (см. таблицу ниже) | Да |
| godpower | Число | Количество праны (для пенсионеров 0-200) [3] | Да |
| gold_approx | Строка | Приблизительное количество золота | Да |
| gender | Строка | Пол героя | Нет |
| godname | Строка | Имя бога | Нет |
| health | Число | Здоровье героя[4] | Да |
| Объект | Удален, вместо него теперь 'activatables' | Да | |
| inventory_max_num | Число | Максимальный размер инвентаря (max = "50") | Нет |
| inventory_num | Число | Количество вещей в инвентаре | Да |
| level | Число | Уровень героя | Нет |
| max_health | Число | Максимальный запас здоровья | Нет |
| motto | Строка | Девиз (может быть пустой строкой) | Нет |
| name | Строка | Имя героя | Нет |
| pet | Объект | Объект, содержащий описание питомца (подробности ниже) | Нет |
| quest_progress | Число | Процент выполнения задания | Да |
| quest | Строка | Текст текущего задания | Да |
| side_job_progress | Число | Процент выполнения подряда | Да |
| side_job | Строка | Текст текущего подряда | Да |
| savings | Строка | Число сбережений (только у храмовладельцев, max = "30000 тысяч") | Нет |
| savings_completed_at | Строка | Дата окончания сбора пенсии (только у пенсионеров) | Нет |
| shop_name | Строка | Название лавки (только у пенсионеров) | Нет |
| souls_percent | Строка | Количество собранных душ в процентах (только у книжников) | Нет |
| relics_percent | Строка | Количество найденных реликвий в процентах | Нет |
| t_level | Число | Уровень героя-торговца (только у лавочников) | Нет |
| temple_completed_at | Строка | Дата окончания храма (только у храмовладельцев) | Нет |
| town_name | Строка | Город, в котором герой (пустая строка, если в поле, и нет ключа, если в бою) | Да |
| wood_cnt | Число | Количество поленьев (пока нет храма, ключ отсутствует) | Нет |
| words | Число | Число собранных слов для книги (без слогов; ключ исчезает, если есть ключ book_at) | Нет |
| Объект pet (питомец) | ||
|---|---|---|
| Ключ | Тип | Описание |
| pet_class | Строка | Вид питомца |
| pet_level | Число | Уровень питомца (пустая строка, если питомец лишился уровня) |
| pet_name | Строка | Имя питомца (например, Пуха «Беспечный»)[5] |
| wounded | Bool | Флаг контузии питомца (есть только у контуженого) |
| Типы боев | ||
|---|---|---|
| Ключ | Описание | |
| arena | арена (ЗПГ в том числе) | |
| boss | босс (мини-квест) | |
| boss_m | босс (зацеп) | |
| challenge | тренировка | |
| dungeon | подземелье | |
| multi_monster | группа монстров | |
| range | полигон | |
| sail | морской поход | |
Примечания
- ↑ Уточнения приветствуются.
- ↑ Чтобы данные стали актуальными, требуется периодическое (раз в час) посещение страницы героя в браузере или одним из полноценных клиентов. Если expired = true, то герой не посещался слишком давно и остальные данные уже не актуальны.
- ↑ Во время битвы с боссом (возможно и в остальных битвах при arena_fight = true) равняется нулю.
- ↑ Здоровье именно героя. Не босса и не ковчега. То есть в подземелье оно показывает актуальные данные, а вот в море и на полигоне - просто состояние героя перед началом приключения.
- ↑ У контуженного питомца имя содержит "❌".