API EVE Online. Настраиваемые ключи

Введение

Хотелось бы начать с перевода небольшого вопросника, расположенного на странице управления ключами официального сайта EVE Online. Такой вопросник поможет быстро разобраться в вопросе тем, кто только начал играть в EVE и не совсем понимает, для чего вообще нужны API-ключи, да и вся система API EVE Online вообще.

Что такое «API-ключ»? Как я могу его использовать?

API-ключ — личный код, идентифицирующий ваш аккаунт в игре и позволяющий сторонним приложениям получать информацию о ваших персонажах и корпорациях. Используя такую информацию, эти программы могут давать вам возможность, например, разработать план развития навыков персонажа на ближайший год, узнать себестоимость минералов, хранящихся на ваших станциях (основываясь на истории операций в маркете) и т.д.

Где взять API ключ EVE Online?

Все ваши API ключи EVE Online доступны на странице управления API официального сайта игры.

Это безопасно? Никто не украдёт доступ к моему аккаунту?

Передача сторонним приложениям API-ключа не даёт доступа к управлению вашим аккаунтом никому. Управлять аккаунтом EVE Online можно только с помощью имени пользователя и пароля, которыми вы не должны делиться ни с кем. Те, кто использует ваши API-ключи, не смогут зайти в игру и действовать там от вашего имени, так же, никто не сможет написать сообщение на форуме, обладая только вашим API-ключом. Дополнительно, ваш пароль ни каким образом не участвует в алгоритме генерации API-ключа, поэтому злоумышленники не смогут на основании ключа получить ваш пароль, каким-нибудь образом его декодируя.

API-ключи — единственный безопасный способ поделиться информацией о своём персонаже со сторонними приложениями. Ни в коем случае не давайте другим людям имя пользователя и пароль, используемые вами для входа в игру. Кроме угрозы того, что злоумышленники очистят ваш кошелёк и ангары в таком случае, вы можете вообще лишиться доступа в игру, так как публикация имени пользователя и пароля — это нарушение правил игры, и разработчики заблокируют ваш аккаунт.

Всё равно я не впечатлён, и мне это не нравится

Если вы считаете, что ваши API-ключи в чужих руках могут создать угрозу безопасности вашего аккаунта, не давайте их ни кому. И вы сами несёте ответственность за то, как используется информация, полученная с помощью ваших API-ключей.

Я давал свои API-ключи другим людям, но теперь хочу, чтобы они перестали их использовать

Если нет других способов избавиться от использования ваших ключей другими людьми, вы можете удалить соответствующий ключ на странице управления аккаунтом (https://support.eveonline.com/api), либо просто изменить параметр Verification Code. Обратите внимание, что после этого все без исключения лица потеряют возможность использовать данный ключ. Если вы против использования ваших ключей только отдельными людьми, но не всеми, сообщите обновлённую информацию о ваших ключах тем, кому вы хотите дать доступ к их использованию.

Так же, вы можете смотреть историю использования ваших ключей (сюда включается информация о том, с какого IP-адреса происходил вызов, название вызываемой API-функции и точное время, когда это происходило).


Изображение кликабельно

Основные возможности настраиваемых ключей

CCP Elerhino в своём девблоге писал, об особенностях настраиваемых API-ключей:

  • до 10 ключей на одном аккаунте;
  • настраиваемый доступ к API + шаблоны;
  • настраиваемая дата прекращения действия;
  • раздельный доступ к корпоративной и персональной информации;
  • ключи как для отдельного персонажа, так и для всех персонажей на аккаунте.

Основа новой системы API-ключей базируется на двух столпах: контроль над составом информации, доступной в рамках данного ключа и контроль над временем, в течении которого такой доступ будет предоставляться. Если, например, вы хотите дать директору вашей корпорации информацию о том, сколько у вас ISK в кошельке, вы можете создать ключ с соответствующим доступом. Если вы хотите, чтобы он мог узнать такую информацию только сегодня, можно сделать соответствующие настройки.

Настраиваемые ключи позволяют предоставлять доступ к информации как одного персонажа, так и всех персонажей на аккаунте. Если пилот является CEO корпорации или её директором, он может создать корпоративный ключ.

Под шаблонами подразумевается возможность генерации ключа с уже заданной итоговой маской доступа. Подробнее этот момент описывается немного ниже — в разделе описывающем автоматическую генерацию ключей.

Для использования новых ключей достаточно будет заменить в вызовах API-функций параметры userID и apiKey на keyID и vCode (как названия, так и значения).

Управление API-ключами

На момент, когда был установлен патч EVE Online: Incarna 1.1, страница управления ключами могла выглядеть следующим образом:


Изображение кликабельно

Новые ключи ещё не создавались, а старые ключи вынесены в отдельную таблицу, с пометкой, что они устарели. Наша задача в данный момент: разобраться в том, как создать API-ключ нового образца. Итак, выбираем ссылку «Create API Key». Открывается страница, на которой происходит создание новых и редактирование уже готовых ключей.


Смысл полей следующий:

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

Verification Code. Код верификации — своеобразный пароль. Его можно задавать как самостоятельно, так и использовать ссылку «generate» для генерации случайного набора символов. Разработчики рекомендуют использовать код, длина которого будет больше 20-ти символов. Идеальный вариант — 64 символа. Чем длиннее код, тем сложнее его подобрать.

Character. Это поле указывает на то, к какому персонажу вашего аккаунта будет привязан данный ключ. Если выбрано значение «All», то ключ будет возможно использовать для получения соответствующей информации о каждом из персонажей.

Type. Настраиваемый API-ключ позволяет разделить информацию о персонаже и корпорации. Ключи бывают двух типов: корпоративные и персональные. Для создания корпоративного ключа, у выбранного в предыдущем поле персонажа должны быть соответствующие роли в корпорации. Если у персонажа нет таких ролей, либо в поле «Character» выбрано значение «All», создать корпоративный ключ не удастся. Так же, от значения данного поля зависит набор функций, доступных для установки полномочий. Например, нельзя будет выбрать функцию CharacterInfo, если ключ создаётся корпоративным.

Access Mask. Данное поле служит для информационных целей. В него невозможно внести информацию, но оно отображает суммарную маску для выбранных вами функций данного ключа.

Expires. Существует возможность сделать так, чтобы после определённой даты ключ перестал действовать. Для этого и предназначается данное поле. Ключ работает до указанной даты (включительно). Если отмечен флажок «No Expiry», то ключ будет действовать постоянно.

keyID и vCode

После создания ключа, нам потребуется узнать значения keyID и vCode. С vCode всё понятно — это то значение, которое вы указывали в поле «Verification Code» при создании ключа. Но никакого идентификатора при этом не было видно. Идентификатор keyID можно узнать из списка ключей.


Изображение кликабельно

На изображении показано, что keyID для созданного ключа равняется 1312 — первый столбец (ID) в таблице со списком ключей.

Проверка ключа

Для проверки ключа была создана API-функция /account/APIKeyInfo.xml.aspx, которой в качестве параметров передаются keyID и vCode. Вызов функции возвращает XML-файл с информацией о данном ключе. Например, вывод может быть такой:

  1. version='1.0' encoding='UTF-8'?>
  2. <eveapi version="2">
  3.   <currentTime>2011-09-04 17:42:23</currentTime>
  4.   <result>
  5.     <key accessMask="8192" type="Character" expires="">
  6.       <rowset name="characters" key="characterID" columns="characterID,characterName,corporationID,corporationName">
  7.         <row characterID="1770043567" characterName="Heritor Skoliya" corporationID="945792655" corporationName="Skoliyan Industry" />
  8.       </rowset>
  9.     </key>
  10.   </result>
  11.   <cachedUntil>2011-09-04 17:47:23</cachedUntil>
  12. </eveapi>

Из приведённого листинга видно, что это персональный ключ для одного персонажа, маска равна 8192 (только вызов функции Medals), а срок действия ключа не ограничен временем.

Автоматическое создание ключей

Создатели API EVE Online предусмотрели возможность автоматической генерации для групп людей, которые должны сформировать ключ с заданным набором функций. Например, есть приложение, показывающее список медалей определённого круга лиц. Разработчик данного приложения, вместо того, чтобы пускаться в пространные объяснения для каждого из лиц, предлагает воспользоваться ссылкой, которая поможет сгенерировать ключ с требуемой маской доступа. Каждый заинтересованный человек переходит по этой ссылке, вводит название ключа и дату прекращения действия (это два поля, которые не заполняются автоматически в данном случае) и получает готовый ключ с минимум телодвижений.

Рассмотрим, как же эта система генерации работает.

Ссылка для автоматического задания параметров ключа вычисляется по определённой формуле. Эта формула выглядит следующим образом:

http://support.eveonline.com/api/Key/CreatePredefined/{accessMask}/{characterID}/{isCorporationKey(true/false)}

Где:

  • {accessMask} — маска для ключа;
  • {characterID} — идентификатор персонажа, к которому привязан данный ключ;
  • {isCorporationKey(true/false)} — значение true указывает на то, что это корпоративный ключ, а false — на то, что он персональный.

Некоторые из этих параметров могут в определённых случаях быть необязательными. В случае с генерацией персонального ключа можно не указывать значения параметров {characterID} и {isCorporationKey}. В таком случае будет создан персональный ключ для всех персонажей на данном аккаунте. Примерами ссылок для автоматического создания ключа могут быть такие:

  • Персональный: http://support.eveonline.com/api/Key/CreatePredefined/9830414 (для всех персонажей на аккаунте)
  • Персональный: http://support.eveonline.com/api/Key/CreatePredefined/9830414/150145448 (для персонажа с идентификатором 150145448)
  • Персональный: http://support.eveonline.com/api/Key/CreatePredefined/9830414/150145448/false (для персонажа с идентификатором 150145448 и явным указанием, что это персональный ключ)
  • Корпоративный: http://support.eveonline.com/api/Key/CreatePredefined/9830414/150145448/true (для персонажа с идентификатором 150145448 и явным указанием, что это корпоративный ключ)

К слову, создать корпоративный ключ может только CEO корпорации. Или директор.

Ещё один момент, связанный с такими ссылками: остерегайтесь фишинга. Некоторые недобросовестные люди могут дать вам, под видом нормальной, ссылку на свой сайт, внешне неотличимый от официального сайта, где вы, проявив невнимательность введёте имя пользователя и пароль от вашего аккаунта. Всегда обращайте внимание на то, что в адресе содержится support.eveonline.com, а не какой-нибудь другой сервер.

Категория: Разработчикам | Добавил: Heritor (02 Сентябрь 2011) | Автор: Heritor Skoliya E W
Просмотров: 19270 | Комментарии: 6 | Рейтинг: 5.0/2
Всего комментариев: 6
1 Evrus   (16 Сентябрь 2011 20:17)
Можно сделать перепост данного материала к себе на сайт?
Заранее благодарю.

2 Heritor   (16 Сентябрь 2011 21:29)
Да, конечно. Если в конце материала укажете ссылку на эту страницу.

3 Evrus   (16 Сентябрь 2011 22:17)
Нет проблем ссылка будет.
Просто на моем сайте реализована интеграция уже с новыми АПИ-ключами, а пользователи как-то недоверчиво относятся к этому функционалу (мы сделали его не обязательным). И мало пока еще юзают.
В данной материале довольно хорошо написано о данной проблеме.

4 Heritor   (16 Сентябрь 2011 22:55)
Спасибо. Буду рад, если этот материал поможет вам и вашим пользователям. smile

5 Axmed   (23 Ноябрь 2011 14:31)
Такая проблема с этим анти фишингом случилась у меня на всех акках, ввел логин пасс, потом ввел ник перса, теперь не могу узнать свой апи.

6 Heritor   (23 Ноябрь 2011 15:11)
На официальном сайте EVE Online открылся раздел для русскоязычных игроков. Попробуйте написать об этом туда. Там вам смогут ответить много людей, которые разбираются в этом вопросе гораздо лучше меня. ( https://forums.eveonline.com/default.aspx?g=topics&f=289 )

Кстати, на том же форуме встречалась подобная тема ( https://forums.eveonline.com/default.aspx?g=posts&t=30036&find=unread ). Может что-то из неё вам подойдёт?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
»Рубрики«
Новичкам [21]
Информация о том как начать играть и как освоиться в игре
Таблицы [10]
Различная сводная информация
Расы [8]
Описание рас Нового Эдема
Хроники [96]
Хроники мира EVE Online. Перевод хроник официального сайта игры
Разработчикам [27]
API, IGB, технологии
Рассказы [1]
Творчество автора данного сайта
Разное [8]
Материалы общего характера
»Поиск«
»Ссылки«
»О сайте«

SKOLI.ru — русский фан сайт игры EVE Online. Статьи и новости с официального сайта eve-online о мире Нового Эдема, гайды, переводы хроник EVE, скриншоты и обои, амбиентная музыка из игры, видео.

»Статистика«

© 2008-2017 SKOLI.RU
Обязательна ссылка на источник, если вы используете материалы, расположенные на данном сайте.
COPYRIGHT NOTICE
EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. CCP hf. is not in any way affiliated with, Skoli.ru. CCP is in no way responsible for the content on or functioning of this website, nor can it be liable for any damage arising from the use of this website.