Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

Небольшой гайд по настраиваемым API-ключам


  • Авторизуйтесь для ответа в теме
16 ответов в теме

#1
Heritor

Heritor

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 415 сообщений
237
  • EVE Ingame:Heritor Skoliya
  • Corp:SKOLI
  • Client:Eng
Введение

Хотелось бы начать с перевода небольшого вопросника, расположенного на странице управления ключами официального сайта. Такой вопросник поможет быстро разобраться в вопросе тем, кто только начал играть и не совсем понимает, для чего вообще нужны 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 — на то, что он персональный.
Некоторые из этих параметров могут в определённых случаях быть необязательными. В случае с генерацией персонального ключа можно не указывать значения параметров {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, а не какой-нибудь другой сервер.

------------
Источник:
http://skoli.ru/publ...juchi/8-1-0-180

Сообщение отредактировал Heritor: 08 September 2011 - 19:22

  • 16

skoli — бывший фансайт EVE Online, веду про него канал в телеграме.

Нашли ошибку? Выделите текст и нажмите Alt+F4 (Cmd+Q, если у вас Mac)


#2
Мейер

Мейер

    Форумный бредогенератор

  • Tech III Pilots
  • PipPipPipPipPip
  • 2731 сообщений
1388
  • EVE Ingame:Dives Armenicus
  • Corp:NPC
  • Ally:Amarr empire
  • Channel:off
  • Client:Eng
EvE mon кстати пока с новыми ключами не работает, будьте осторожны.
  • 0

... loading ...


#3
Heritor

Heritor

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 415 сообщений
237
  • EVE Ingame:Heritor Skoliya
  • Corp:SKOLI
  • Client:Eng
Мне кажется, что это разнообразие масок, когда каждая функция настраивается отдельно, немного ломает мозг. 10% кода приложения теперь будет занимать проверка соответствия маски ключа функционалу программы.
  • 0

skoli — бывший фансайт EVE Online, веду про него канал в телеграме.

Нашли ошибку? Выделите текст и нажмите Alt+F4 (Cmd+Q, если у вас Mac)


#4
infolex

infolex

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 169 сообщений
62
  • EVE Ingame:infolex
  • Corp:The Scope
  • Client:Рус
http://eve-rostov.ru...les.htm?pid=810 а на счет масок думаю это норм, просят наприме лимител апи, а ты не хочешь кош светить, убираешь галочки, и даешь ключ с доступом тока к списку чаров. Задумка шикарна

Сообщение отредактировал infolex: 05 September 2011 - 1:53

  • 0
Спойлер


#5
Heritor

Heritor

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 415 сообщений
237
  • EVE Ingame:Heritor Skoliya
  • Corp:SKOLI
  • Client:Eng
Добавлен раздел «Основные возможности настраиваемых ключей» — после введения.

Сообщение отредактировал Heritor: 08 September 2011 - 19:26

  • 0

skoli — бывший фансайт EVE Online, веду про него канал в телеграме.

Нашли ошибку? Выделите текст и нажмите Alt+F4 (Cmd+Q, если у вас Mac)


#6
DarkPhoenix

DarkPhoenix

    Hatred

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 28854 сообщений
4411

10% кода приложения теперь будет занимать проверка соответствия маски ключа функционалу программы.

Сел тут разбираться с этими ключами ожидая худшего. Какие 10%? Там реально достаточно поменять userID => keyID и apiKey => vCode + сделать вызов /account/APIKeyInfo.xml.aspx с проверкой ключа через налагание своей побитовой маски. Если у тебя уже есть готовый парсер хмл/ив-апи с местными структурами данных (а он должен быть, работал же ты с этим как-то раньше) - это буквально 5-10 строчек кода.

И, да, проверка вовсе не обязательна - работает даже после замены терминов со старых на новых. Для небольших "домашних" скриптов большего и не нужно.
  • 0

There is a place where the black stars hang
and the strangest eons call that amorphous mass
unknown, immense, ambivalent to all


#7
Heritor

Heritor

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 415 сообщений
237
  • EVE Ingame:Heritor Skoliya
  • Corp:SKOLI
  • Client:Eng

Какие 10%?

Я погорячился. :)

Мало того, в "/corp/"-функциях теперь можно не указывать CharacterID, так как корпоративный ключ и так привязан к персонажу, который обладает соответствующими полномочиями. Не скажу сразу про все корпоративные функции, но лично я проверял /corp/WalletJournal.xml.aspx, /corp/FacWarStats.xml.aspx и /corp/AccountBalance.xml.aspx. Раньше для их вызова требовались параметры userID, apiKey и characterID. Сейчас же достаточно keyID и vCode.
  • 0

skoli — бывший фансайт EVE Online, веду про него канал в телеграме.

Нашли ошибку? Выделите текст и нажмите Alt+F4 (Cmd+Q, если у вас Mac)


#8
Thart

Thart

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 530 сообщений
93
  • EVE Ingame:Thart
  • Corp:U.K.R.A.I.N.E.
  • Ally:Solar Fleet
  • Channel:EVE Mentat
  • Client:Eng

Я погорячился. :)

Мало того, в "/corp/"-функциях теперь можно не указывать CharacterID, так как корпоративный ключ и так привязан к персонажу, который обладает соответствующими полномочиями. Не скажу сразу про все корпоративные функции, но лично я проверял /corp/WalletJournal.xml.aspx, /corp/FacWarStats.xml.aspx и /corp/AccountBalance.xml.aspx. Раньше для их вызова требовались параметры userID, apiKey и characterID. Сейчас же достаточно keyID и vCode.

Я правильно понимаю, что для работы с корпоративными ордерами я должен попросить директора создать ключ для меня?
  • 0

#9
dnbtrain

dnbtrain

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 413 сообщений
74
  • EVE Ingame:dnbtrain
  • Corp:NPC
  • Client:Рус

Я правильно понимаю, что для работы с корпоративными ордерами я должен попросить директора создать ключ для меня?

Именно. С условием что директор тебя не пошлет:)
  • 0

sign.jpg


#10
Thart

Thart

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 530 сообщений
93
  • EVE Ingame:Thart
  • Corp:U.K.R.A.I.N.E.
  • Ally:Solar Fleet
  • Channel:EVE Mentat
  • Client:Eng

Именно. С условием что директор тебя не пошлет:)

Ага, я уже разобрался. Пришлось поддерживать два типа ключей одновременно.
В целом ничего страшного, но очень смущает тот факт, что внутриигровая механика регулируется правами, а внешняя (АПИ) - нет.
  • 0

#11
dnbtrain

dnbtrain

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 413 сообщений
74
  • EVE Ingame:dnbtrain
  • Corp:NPC
  • Client:Рус

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

Ошибаешься. Если у тебя нет прав на просмотреть корп транзакций, то и черз АПИ ты не сможшь их просмотреть
  • 0

sign.jpg


#12
Thart

Thart

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 530 сообщений
93
  • EVE Ingame:Thart
  • Corp:U.K.R.A.I.N.E.
  • Ally:Solar Fleet
  • Channel:EVE Mentat
  • Client:Eng

Ошибаешься. Если у тебя нет прав на просмотреть корп транзакций, то и черз АПИ ты не сможшь их просмотреть

Ок, я просто не пробовал.
Твой вариант обобщает сказанное мною.
  • 0

#13
Petrovytsh

Petrovytsh

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 533 сообщений
24
  • EVE Ingame:offline
  • Client:Eng
Каверзный вопрос, а {accessMask} какиким образом формируется?
то, есть, каким образом задать маску для получения требуемого набора активированных опций?
  • 0

...евент типа "покрабь с Миттани": приварпываете вы с ним на четверку, туда же приварпывает охрана - пара форматных вингов, подтягиваются зрители, и ты на пару с Миттани под аплодисменты проходишь какую-нибудь "Блокаду". Потом, разумеется, скриншоты на память, интервью со словами "Я уже забыл, что такое крабить в хайсеке, всегда приятно вспомнить первые месяцы игры" и т.д.


#14
dnbtrain

dnbtrain

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 413 сообщений
74
  • EVE Ingame:dnbtrain
  • Corp:NPC
  • Client:Рус

Каверзный вопрос, а {accessMask} какиким образом формируется?
то, есть, каким образом задать маску для получения требуемого набора активированных опций?

Это http://forum.eve-ru....dpost&p=1442904 плюс это http://wiki.eve-id.n...PI_CallList_XML
  • 0

sign.jpg


#15
Petrovytsh

Petrovytsh

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 533 сообщений
24
  • EVE Ingame:offline
  • Client:Eng
ну, я уже нашел более тупой и примитивный способ - сперва самому все нужные галки проставить
и полученную маску уже использовать )))
все гениальное - просто )))
  • 0

...евент типа "покрабь с Миттани": приварпываете вы с ним на четверку, туда же приварпывает охрана - пара форматных вингов, подтягиваются зрители, и ты на пару с Миттани под аплодисменты проходишь какую-нибудь "Блокаду". Потом, разумеется, скриншоты на память, интервью со словами "Я уже забыл, что такое крабить в хайсеке, всегда приятно вспомнить первые месяцы игры" и т.д.


#16
bwit1

bwit1

    Newbie

  • Tech I Pilots
  • 3 сообщений
0
  • Client:Рус
Подскажите как настроить eveboard,я ключ создал,ввожу в eveboard пишет.Ввёл новые ID и vcode загружается мой чар и не показывает ничего всё по нулям и пишет Error: Illegal page request! Please verify the access granted by the key you are using!
  • 0

#17
Heritor

Heritor

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 415 сообщений
237
  • EVE Ingame:Heritor Skoliya
  • Corp:SKOLI
  • Client:Eng
Попробуй создать ключ по этой ссылке:

https://support.eveonline.com/api/key/createpredefined/59645960 (это ссылка с eveboard.com)

Создаётся персональный ключ на всех персонажей, с маской 59645960, что подразумевает доступ к функциям:

  • AccountStatus (Основная информация об аккаунте)
  • CharacterInfo (Информация о конкретном персонаже - полная)
  • SkillQueue (Очередь тренировки навыков)
  • SkillInTraining (Текущий тренируемый навык)
  • CharacterSheet (Листок персонажа)
  • CharacterInfo (Информация о конкретном персонаже - публичная)
  • Standings (Стендинги к NPC)
  • Medals (Медали)

Так же, после создания ключа должно пройти немного времени (может быть 15-20 минут), чтобы он стал доступен для использования через систему API.

Сообщение отредактировал Heritor: 17 January 2012 - 0:22

  • 0

skoli — бывший фансайт EVE Online, веду про него канал в телеграме.

Нашли ошибку? Выделите текст и нажмите Alt+F4 (Cmd+Q, если у вас Mac)





1 посетителей читают тему

0 members, 1 guests, 0 anonymous users