Хотелось бы начать с перевода небольшого вопросника, расположенного на странице управления ключами официального сайта. Такой вопросник поможет быстро разобраться в вопросе тем, кто только начал играть и не совсем понимает, для чего вообще нужны API-ключи, да и вся система API EVE Online вообще.
Что такое «API-ключ»? Как я могу его использовать?
API-ключ — личный код, идентифицирующий ваш аккаунт и позволяющий сторонним приложениям получать информацию о ваших персонажах и корпорациях. Используя такую информацию, эти программы могут давать вам возможность, например, разработать план развития навыков персонажа на ближайший год, узнать себестоимость минералов, хранящихся на ваших станциях (основываясь на истории операций в маркете) и т.д.
Это безопасно? Никто не украдёт доступ к моему аккаунту?
Передача сторонним приложениям API-ключа не даёт доступа к управлению вашим аккаунтом никому. Управлять аккаунтом можно только с помощью имени пользователя и пароля, которыми вы не должны делиться ни с кем. Те, кто использует ваши 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-файл с информацией о данном ключе. Например, вывод может быть такой:
<?xml version=’1.0′ encoding=’UTF-8′?>
<eveapi version="2″>
<currentTime>2011-09-03 05:15:46</currentTime>
<result>
<key accessMask="8192″ type="Character" expires="">
<rowset name="characters" key="characterID" columns="characterID,characterName,corporationID,corporationName">
<row characterID="1770043567″ characterName="Heritor Skoliya" corporationID="945792655″ corporationName="Skoliyan Industry" />
</rowset>
</key>
</result>
<cachedUntil>2011-09-03 05:20:46</cachedUntil>
</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 — на то, что он персональный.
Персональный: 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, а не какой-нибудь другой сервер.
------------
Источник:
http://skoli.ru/publ...juchi/8-1-0-180
Сообщение отредактировал Heritor: 08 September 2011 - 19:22