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

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

EVE API +PHP Пример скрипта


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

#1
Ashu

Ashu

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2397 сообщений
421
  • EVE Ingame:Ashhuras
  • Corp:Local Drama
  • Channel:NONE
  • Client:Eng

Привет всем! Даная статься предназначена для тех, кто хочет попробовать сварганить приложение на том 1или ином языке программирования, связанное с EVE Online.

Можно на Делфи, хоть на сях, даже можно взять БайСек ! )
Пишу в свободное время без отрыва от производства, на работе программулько для себя , вот решил поделиться с теми кому будет это интересно .

Соответственно задавшись мыслью как это все работает и перерыв тучу форумов (в основном конечно забугорных) , то что я искал было найдено тут - http://wiki.eve-id.net/API_PHP_Class
Тут - http://wiki.eve-id.net/Pheal и тут http://wiki.eve-id.n..._Class_Extended

Это все хозяйство было мною поюзано и изучено, остановился я на первом варианте, конечно как любой программист скажет глядя на чужой код
«это никуда не годиться» и пришлось чуточку переписать и изменить, а главное понять суть. (Доки ведь на русском я не нашел).
Я не претендую ни на какие авторские права, я всего лишь хочу поделиться информацией с русскими игроками и возможно, вдруг счастливая звезда пошлет мне заказчеГа )


И так, исходный код

<?php
error_reporting(0);
class apiinterface {

public $userid = 0;

public $apikey = "";

private $apiroot = "http://api.eve-online.com";

function setup($userid,$apikey) {
$this->userid = $userid;
$this->apikey = $apikey;
}

function apiRequest($target,$paramarray) {

$paramarray['keyID'] = $this->userid;
$paramarray['vCode'] = $this->apikey;

$t = "?";
foreach ($paramarray as $k=>$v) {
$t .= $k."=".$v."&";
}

$t = substr($t,0,-1);

//print $this->apiroot.$target.$t."<br>";

$cont=file_get_contents($this->apiroot.$target.$t);
$xml= simplexml_load_string($cont);

//--------- УБРАТЬ КОММЕНТЫ ЧТО БЫ ПОЛУЧИТЬ ВЕСЬ СПИСОК СРАЗУ
/*echo '<pre>';
print_r($xml);
echo '</pre>';*/



foreach ($xml->result as $Inf) { //<<<--------------
echo 'Имечко:<strong>'.$Inf->name .'</strong><br />';
echo 'Раса:<strong>'.$Inf->race .'</strong><br />';
echo 'Происхождение:<strong>'.$Inf->bloodLine .'</strong>';
echo ' - <strong>'.$Inf->ancestry .'</strong><br />';
echo 'Баба, али мужик?:<strong>'.$Inf->gender .'</strong><br />';
echo 'Корпорация:<strong>'.$Inf->corporationName .'</strong><br />';
echo 'Зачат? Рожден?:<strong>'.$Inf->DoB .'</strong><br />';
echo 'Клон:<strong>'.$Inf->cloneName .'</strong><br />';
echo '---------------------------<br />';

echo 'А так же, многое другое!<br />';

} //<<<--------------------
}
}
//----------------там выше сам нубо класс ------
$api = new apiinterface();
$api->setup("ИД","ВЕРИФИКЕЙШЕН КОД");
$ret = $api->apiRequest("/char/CharacterSheet.xml.aspx");
?>



В подлинных исходниках вытягивание строки происходило с помощью библиотеки CURL, тот участок кода я убрал, работало как то криво,
а то и вовсе не работало, да и если кто надумает поставить пхп нужно ведь еще править php.ini для запуска пресловутого курла,
как парсить я думаю читатель решит сам, если возьмётся за писанину. Ну и конечно же учить программированию я ни кого не собираюсь, но если у кого будут вопросы я конечно же отвечу. Так сказать помогу, чем смогу.

Для того, что бы это все заработало у вас на компе, нужно скачать например, пакет «Денвер» там все идет сразу и Апач и Пхп и СУБД тут http://www.denwer.ru/ и конечно же установить.

Для тех кому очень интересно можете взять данный скрипт за основу и обернуть все красиво в Класс - что я в принципе уже сделал давненько !)
Всем удачи на скрине пример работы скрипта

9bdaece2f457.jpg


Сообщение отредактировал Ashu: 04 March 2015 - 13:19

  • 1

И прилетел в седьмой год царствования Лугальаннемунду удивительный небесный Тигрис, вспыхивающий то красным пламенем, то синим. И пристал около Шуруппака. И вышли оттуда удивительные существа, и подходили к павшим ниц халдеям. И совали им в рот чудные трубочки. И говорили загадочно "Панаихали. Анну на куй!!".
Аннунаки, аннунаки - перешептывались ползающие в пыли халдеи - Боги прилетели."
 


#2
Crysalis*Нейтрал

Crysalis*Нейтрал
  • Guests
долго думал, о чем тема....

эти все данные вытягиваюся без проблем с простейшим запросом к ив апи путем урла :troll:

Сообщение отредактировал Crysalis: 12 April 2013 - 11:58

  • 0

#3
Ashu

Ashu

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2397 сообщений
421
  • EVE Ingame:Ashhuras
  • Corp:Local Drama
  • Channel:NONE
  • Client:Eng

долго думал, о чем тема....

эти все данные вытягиваюся без проблем с простейшим запросом к ив апи путем урла :troll:


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

И прилетел в седьмой год царствования Лугальаннемунду удивительный небесный Тигрис, вспыхивающий то красным пламенем, то синим. И пристал около Шуруппака. И вышли оттуда удивительные существа, и подходили к павшим ниц халдеям. И совали им в рот чудные трубочки. И говорили загадочно "Панаихали. Анну на куй!!".
Аннунаки, аннунаки - перешептывались ползающие в пыли халдеи - Боги прилетели."
 


#4
Crysalis*Нейтрал

Crysalis*Нейтрал
  • Guests

простому пользователю совершенно не интересно

eve api + php пример скрипта


вот именно в таком порядке
:lol:
  • 0

#5
Ashu

Ashu

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2397 сообщений
421
  • EVE Ingame:Ashhuras
  • Corp:Local Drama
  • Channel:NONE
  • Client:Eng

eve api + php пример скрипта


вот именно в таком порядке
:lol:


Ога , только статья то о другом
  • 0

И прилетел в седьмой год царствования Лугальаннемунду удивительный небесный Тигрис, вспыхивающий то красным пламенем, то синим. И пристал около Шуруппака. И вышли оттуда удивительные существа, и подходили к павшим ниц халдеям. И совали им в рот чудные трубочки. И говорили загадочно "Панаихали. Анну на куй!!".
Аннунаки, аннунаки - перешептывались ползающие в пыли халдеи - Боги прилетели."
 


#6
Der Alte

Der Alte

    ПВП-шник 4-й категории

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 8058 сообщений
1673
  • EVE Ingame:Aunt Tom
  • Corp:-DVC-
  • Ally:-GE-
  • Channel:-DVC-
Коротко говоря, когда мне стало надо, я к Пасторе прикрутил ALE -- http://wiki.eve-id.net/Eve-apiphp

Заработало практически из коробки, выдирать волосы из головы не надо, изобретать велосипеды тоже не надо. Что удобно, одна и та же библиотека работает с EVE, EVE Central и eve-kill

Упд. А API PHP Class разрабатывался под API 1.0 (и все еще незаменим, если надо сделать API 1.0 запрос)
  • 0

Aunt_Tom.png
 

 


#7
Ashu

Ashu

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2397 сообщений
421
  • EVE Ingame:Ashhuras
  • Corp:Local Drama
  • Channel:NONE
  • Client:Eng

Коротко говоря, когда мне стало надо, я к Пасторе прикрутил ALE -- http://wiki.eve-id.net/Eve-apiphp

Заработало практически из коробки, выдирать волосы из головы не надо, изобретать велосипеды тоже не надо. Что удобно, одна и та же библиотека работает с EVE, EVE Central и eve-kill

Упд. А API PHP Class разрабатывался под API 1.0 (и все еще незаменим, если надо сделать API 1.0 запрос)


Согласен про API PHP Class, а вот ALE у меня не взелетел сразу из коробки то ) А ковырять его желания не было.
  • 0

И прилетел в седьмой год царствования Лугальаннемунду удивительный небесный Тигрис, вспыхивающий то красным пламенем, то синим. И пристал около Шуруппака. И вышли оттуда удивительные существа, и подходили к павшим ниц халдеям. И совали им в рот чудные трубочки. И говорили загадочно "Панаихали. Анну на куй!!".
Аннунаки, аннунаки - перешептывались ползающие в пыли халдеи - Боги прилетели."
 


#8
Sir Zak

Sir Zak

    меня трудно найти легко потерять и невозможно забыть

  • Tech III Pilots
  • PipPipPipPipPip
  • 2854 сообщений
2179
  • EVE Ingame:DJ BASIL
  • Corp:X-OPS
  • Ally:N/A
  • Channel:Baraboom
  • Client:Eng
Новая ветвь развитя корпы?
Ты мемберов в барак загнал и заствляешь писать индусский код?
  • 0

0cd6077657ba7f6fe393e83750b9a449.png


#9
to4kin

to4kin

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 164 сообщений
31
  • EVE Ingame:Jack Heklar
  • Corp:ChasingPowerGal
  • Channel:evetv.ru
  • Client:Eng
Поставил плюсик Изображение Хотел вообще-то минус, т.к. тема не о чем...
  • 0
Видео - трансляции с поля боя [CHPOG]
Рекрут топик на форуме.

#10
L0SER

L0SER

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 3393 сообщений
1385
  • EVE Ingame:l0ser18q
  • Corp:po ny
  • Ally:oos
  • Client:Eng

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

Вся суть оп-поста.

Сообщение отредактировал L0SER: 12 April 2013 - 13:26

  • 0
Out of Sight. ищет новых пилотов и корпорации. \o/

#11
Indomch

Indomch

    Clone Grade Alpha

  • Tech III Pilots
  • Pip
  • 52 сообщений
-21
  • Client:Eng

Вся суть оп-поста.

Чукча совсем не читатель, а писатель, еще и дипломат -рукалицо
По сабжу, Тс получается, что вытягиваем через EVE Api xml и его потом разбираем ?
  • 0

#12
Crysalis*Нейтрал

Crysalis*Нейтрал
  • Guests

По сабжу, Тс получается, что вытягиваем через EVE Api xml и его потом разбираем ?

зачем вытягивать хмл? :blink:

ахахахаах :lol:
  • 0

#13
L0SER

L0SER

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 3393 сообщений
1385
  • EVE Ingame:l0ser18q
  • Corp:po ny
  • Ally:oos
  • Client:Eng

зачем вытягивать хмл? :blink:

Затем, что CCP отдаёт данные в этом формате.

Чукча совсем не читатель, а писатель, еще и дипломат -рукалицо

О чем оп-пост? Он показывает как быдлокодить на пехапе? Да пол интернета завалено статьями как научиться варганить вермишель на пехапе за 12 часов.
Оп хвастается, что для того, чтобы научиться пользоваться eve-api у него ушло куча времени? Ну да, согласен, ведь он настолько непробиваем, что не смог открыть первую ссылку в гугле, ведущую на ивилопедию.
Оп показывает пример приложения работающего с АПИ? Оче плохой пример, скорее показыающий как не нужно работать с апи в вашем приложении.
Впрочем тот факт, что ОП искал документацию на русском и обосрался с установкой pheal/ale говорит за него и так.

И да, раз уж ты решил переходить на личности: мнение ноунейм бомжа очень важно для нас, пожалуйста продолжай. :troll:

Сообщение отредактировал L0SER: 12 April 2013 - 14:22

  • 1
Out of Sight. ищет новых пилотов и корпорации. \o/

#14
Indomch

Indomch

    Clone Grade Alpha

  • Tech III Pilots
  • Pip
  • 52 сообщений
-21
  • Client:Eng

Затем, что CCP отдаёт данные в этом формате.
О чем оп-пост? Он показывает как быдлокодить на пехапе? Да пол интернета завалено статьями как научиться варганить вермишель на пехапе за 12 часов.
Оп хвастается, что для того, чтобы научиться пользоваться eve-api у него ушло куча времени? Ну да, согласен, ведь он настолько непробиваем, что не смог открыть первую ссылку в гугле, ведущую на ивилопедию.
Оп показывает пример приложения работающего с АПИ? Оче плохой пример, скорее показыающий как не нужно работать с апи в вашем приложении.
Впрочем тот факт, что ОП искал документацию на русском и обосрался с установкой pheal/ale говорит за него и так.

И да, раз уж ты решил переходить на личности: мнение ноунейм бомжа очень важно для нас, пожалуйста продолжай. :troll:



Мне совершено на плевать на тебя , на всех кто тут торчит, на приложение которое показывает как надо или не надо работать с апи.
Тут суть другая поста совершенно, говориш вот как не надо, а где конкретика ? Ее нет , ты что то знаеш ? Так напиши, покажи,расскажи.
Если внимательно почитать пост, то ТС обосрался с установкой всех твоих Але и Пелов, но тем не менее...я думаю что ты просто конченный ****ак .

4.2, 4.4 Неделя РО

Сообщение отредактировал Janet: 12 April 2013 - 14:52

  • -1

#15
Ashu

Ashu

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2397 сообщений
421
  • EVE Ingame:Ashhuras
  • Corp:Local Drama
  • Channel:NONE
  • Client:Eng
Мда ни один пост на ева сру не может выглядеть нормаьно лишь потому, что такова природа царящая на ева сру. По этому думаю что пояснять ничего не надо, глупый все равно ничего не поймет, а умный если надо в личку спросит.
  • 0

И прилетел в седьмой год царствования Лугальаннемунду удивительный небесный Тигрис, вспыхивающий то красным пламенем, то синим. И пристал около Шуруппака. И вышли оттуда удивительные существа, и подходили к павшим ниц халдеям. И совали им в рот чудные трубочки. И говорили загадочно "Панаихали. Анну на куй!!".
Аннунаки, аннунаки - перешептывались ползающие в пыли халдеи - Боги прилетели."
 


#16
L0SER

L0SER

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 3393 сообщений
1385
  • EVE Ingame:l0ser18q
  • Corp:po ny
  • Ally:oos
  • Client:Eng

Мне совершено на плевать на тебя , на всех кто тут торчит, на приложение которое показывает как надо или не надо работать с апи.

Быстро ты слился. :(
  • 0
Out of Sight. ищет новых пилотов и корпорации. \o/

#17
etelereth

etelereth

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 192 сообщений
21
  • EVE Ingame:Zamell
  • Corp:TNDBI
  • Client:Рус
del

Сообщение отредактировал etelereth: 12 April 2013 - 21:49

  • 0

#18
GraaaF

GraaaF

    Newbie

  • Tech II Pilots
  • 19 сообщений
1
$cont=file_get_contents($this->apiroot.$target.$t);

за вот такое можно таких учителей вешать на столбах.
  • 0

#19
clop1000

clop1000

    Clone Grade Theta

  • Tech III Pilots
  • PipPipPipPip
  • 983 сообщений
-36
  • Client:Eng
$cont=file_get_contents($this->apiroot.$target.$t); а в чем косяк)))
  • 0

#20
MtG

MtG

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 553 сообщений
738
  • EVE Ingame:Medusa the Gorgon
  • Ally:-GE-
  • Client:Рус
1. Где обработка ошибок?
2. Как мне вытащить с помощью предлагаемого класса второй кусок xml, например, если это киллисты или журнал транзакций?
3. Как реализовано кеширование тех XML, которые не отдадутся повторно до таймаута?

PS. Вы не написали ровным счётом ничего и даже не смогли запустить CURL. Заказчиков будет искренне жаль.
спойлертынц

	/*************************************************************************
* Скачивает XML с eve-api сайта.
*
* @param APIKey|null $key объект с ключевыми данными или null, если они не нужны для запроса.
* @param array $extra массив с дополнительными данными запроса. Пример:
* array('characterID' => 123456)
* @return string|boolean скачанный XML или false в случае ошибки
*************************************************************************/
protected function getXML($key, array $extra = array())
{
$url = $this->use_test_api_url_ ? 'https://apitest.eveonline.com/' : 'https://api.eveonline.com/';
$params = is_null($key) ? array() : $key->GetRequestParameters();
$params = array_merge($params, $extra);

//Массив расово верных параметров CURL (для копипастеров)
$curl_params = array(
CURLOPT_URL => $url . $this->requestString_,
CURLOPT_POST => true,
CURLOPT_TIMEOUT => $this->http_timeout_,
CURLOPT_RETURNTRANSFER => true, //Обязательно, иначе данные будут выведены в консоль
CURLOPT_POSTFIELDS => $params,
CURLOPT_SSL_VERIFYPEER => true, //false если надо жрать самоподписанные сертификаты
CURLOPT_SSL_VERIFYHOST => 2, //certificate common name == domain
CURLOPT_USERAGENT => KB_USERAGENT,
);

$retry = $this->retry_count;
$data = '';
$ch = curl_init();
$error = '';
while(empty($data) && $retry--)
{
curl_setopt_array($ch, $curl_params);
$started = microtime(true);
$data = curl_exec($ch);

if(defined('DEBUG_CCP_API') && constant('DEBUG_CCP_API'))
{
$err = curl_error($ch);
$logdata = array(
$this->requestString_,
intval((microtime(true) - $started) * 1000),
strlen($data),
$err,
);
Log::Log2File('ccpapi', $logdata);
}

if(curl_error($ch))
{
$error = curl_error($ch);
}
}
curl_close($ch);

if(empty($data))
{
if(empty($error))
{
$error = "Received XML is empty with no reason";
}

return $this->setError($error, APIBase::err_connection_error);
}

return $data;
}

  • 0




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

0 members, 1 guests, 0 anonymous users