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

Обсуждение практических вопросов использования Public API


Рекомендованные публикации

Игроки
12 публикаций
42 514 боёв
31 Дек 2013 - 11:31 пользователь thunderspb сказал:

Ну если бы небыли столь ленивым, то прочитали бы описание метода и нашли бы там совершенно никому ненужный и ничем непримечательный параметр

redirect_uri string

URL страницы, на которую будет перенаправлен пользователь после аутентификации.

По умолчанию: api.worldoftanks.ru/wot/blank/

но куда уж нам....

 


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

Ссылка на комментарий
Поделиться на других сайтах

Бета-тестеры
762 публикации
10 192 боя
31 Дек 2013 - 14:55 пользователь mk7387 сказал:

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

Ок, тоже гуглится за 1 раз :) https://ru.wargaming.net/support/Knowledgebase/Article/View/430/18/chto-tkoe-servis-openid и вот http://habrahabr.ru/post/149187/

Изменено пользователем thunderspb
Все, что вы хотели узнать про статистику онлайна с преферансом и куртизанками графиками покластерно и посерверно: https://stats.wotapi.ru/
Ссылка на комментарий
Поделиться на других сайтах

Игроки
522 публикации
34 103 боя

statistics.clan- бои в составе клана

statistics.all - рандом бои

statistics.company - ротные бои

 

а как получить по статистику по командным боям?  на данный момент ни общей, ни по технике это невозможно получить.

 

Очень была бы полезна, активность игрока в плане командных боев, т.к. бывает что за день командных боев бывает на порядок больше чем рандомных.

 

 

 

Ссылка на комментарий
Поделиться на других сайтах

Игроки
569 публикаций
20 950 боёв
01 Янв 2014 - 13:46 пользователь NAGlBAT0R сказал:

statistics.clan- бои в составе клана

statistics.all - рандом бои

statistics.company - ротные бои

 

а как получить по статистику по командным боям?  на данный момент ни общей, ни по технике это невозможно получить.

 

Очень была бы полезна, активность игрока в плане командных боев, т.к. бывает что за день командных боев бывает на порядок больше чем рандомных.

Пока по коммандным боям статистику получить невозможно. Метод находится в разработке. При релизе данного метода об этом будет сообщено дополнительно.

Ссылка на комментарий
Поделиться на других сайтах

Игроки
422 публикации
15 663 боя
31 Дек 2013 - 11:47 пользователь Gurenovich сказал:

Как получить id танков, которыми играл игрок?

$tanks->data->$val->tank_id

Как обозначить переменную $val ?

$tanks=json_decode(curl_exec($ch), true);

foreach($tanks[data] as $tank) {
  $arr[]=$tank[tank_id];
}

p.s. в json_decode() - вторым параметром true - возвращаемые объекты будут преобразованы в ассоциативные массивы.

manual: json_decodeforeach

Изменено пользователем Гость
  • Плюс 1
Ссылка на комментарий
Поделиться на других сайтах

Игроки
522 публикации
34 103 боя

 

{"achievements":{"medal_dumitru":0,"invader":0,"medal_lehvaslaiho":0,"warrior":0,"medal_halonen":0,"medal_pascucci":0,"medal_orlik":0,"medal_brothers_in_arms":0,"mousebane":0,"medal_bruno_pietro":0,"medal_delanglade":0,"lucky_devil":0,"defender":0,"armor_piercer":0,"medal_kay":0,"supporter":0,"steelwall":0,"max_sniper_series":0,"medal_knispel":0,"medal_boelter":0,"medal_ekins":0,"medal_heroes_of_rassenay":0,"medal_tamada_yoshio":0,"max_piercing_series":0,"medal_radley_walters":0,"kamikaze":0,"sinai":0,"sniper":0,"medal_tarczay":0,"scout":0,"medal_oskin":0,"medal_burda":0,"medal_billotte":0,"huntsman":0,"hand_of_death":0,"medal_fadin":0,"medal_lafayette_pool":0,"max_killing_series":0,"medal_lavrinenko":0,"medal_kolobanov":0,"patton_valley":0,"bombardier":0,"medal_abrams":0,"max_invincible_series":0,"medal_poppel":0,"medal_crucial_contribution":0,"raider":0,"max_diehard_series":0,"invincible":0,"lumberjack":0,"sturdy":0,"title_sniper":0,"iron_man":0,"diehard":0,"medal_carius":0,"medal_le_clerc":0,"beasthunter":0,"evileye":0,"medal_nikolas":0},"statistics":{"clan":{"spotted":0,"hits":0,"battle_avg_xp":0,"draws":0,"wins":0,"losses":0,"capture_points":0,"battles":0,"damage_dealt":0,"hits_percents":0,"damage_received":0,"shots":0,"xp":0,"frags":0,"survived_battles":0,"dropped_capture_points":0},"all":{"spotted":0,"hits":0,"battle_avg_xp":0,"draws":0,"wins":7,"losses":0,"capture_points":0,"battles":10,"damage_dealt":0,"hits_percents":0,"damage_received":0,"shots":0,"xp":0,"frags":0,"survived_battles":0,"dropped_capture_points":0},"max_xp":0,"wins":7,"company":{"spotted":0,"hits":0,"battle_avg_xp":0,"draws":0,"wins":0,"losses":0,"capture_points":0,"battles":0,"damage_dealt":0,"hits_percents":0,"damage_received":0,"shots":0,"xp":0,"frags":0,"survived_battles":0,"dropped_capture_points":0},"battles":10,"max_frags":0,"win_and_survived":0},"last_battle_time":0,"mark_of_mastery":2,"in_garage":0,"tank_id":321}

 

2. Кроме того достаточно избыточны поля медалей для каждого танка пользователя, каждая такая строчка занимает около 1 кб текста на 1 танк, при 50-100 танках игрока размер пустой информации становится существенен. Более оптимальном было бы переназначит структуру, где корнем является номер(имя) медали, а значениями из списка id танков где эта медаль была получена.

Spoiler

 

"medal_dumitru":0,"invader":0,"medal_lehvaslaiho":0,"warrior":0,"medal_halonen":0,"medal_pascucci":0,"medal_orlik":0,"medal_brothers_in_arms":0,"mousebane":0,"medal_bruno_pietro":0,"medal_delanglade":0,"lucky_devil":0,"defender":0,"armor_piercer":0,"medal_kay":0,"supporter":0,"steelwall":0,"max_sniper_series":0,"medal_knispel":0,"medal_boelter":0,"medal_ekins":0,"medal_heroes_of_rassenay":0,"medal_tamada_yoshio":0,"max_piercing_series":0,"medal_radley_walters":0,"kamikaze":0,"sinai":0,"sniper":0,"medal_tarczay":0,"scout":0,"medal_oskin":0,"medal_burda":0,"medal_billotte":0,"huntsman":0,"hand_of_death":0,"medal_fadin":0,"medal_lafayette_pool":0,"max_killing_series":0,"medal_lavrinenko":0,"medal_kolobanov":0,"patton_valley":0,"bombardier":0,"medal_abrams":0,"max_invincible_series":0,"medal_poppel":0,"medal_crucial_contribution":0,"raider":0,"max_diehard_series":0,"invincible":0,"lumberjack":0,"sturdy":0,"title_sniper":0,"iron_man":0,"diehard":0,"medal_carius":0,"medal_le_clerc":0,"beasthunter":0,"evileye":0,"medal_nikolas":0

 

3.  Вопрос по командным боям понятен, ждем. 

Вопрос в том, что множества  statistics.clan и statistics.company являются пересекаемыми или нет? Т.е. statistics.company - это ротные бои вне клана строго?

 

 

 

Изменено пользователем NAGlBAT0R

 

Ссылка на комментарий
Поделиться на других сайтах

Игроки
86 публикаций
23 055 боёв
02 Янв 2014 - 11:29 пользователь NAGlBAT0R сказал:

 

{"achievements":{"medal_dumitru":0,"invader":0,"medal_lehvaslaiho":0,"warrior":0,"medal_halonen":0,"medal_pascucci":0,"medal_orlik":0,"medal_brothers_in_arms":0,"mousebane":0,"medal_bruno_pietro":0,"medal_delanglade":0,"lucky_devil":0,"defender":0,"armor_piercer":0,"medal_kay":0,"supporter":0,"steelwall":0,"max_sniper_series":0,"medal_knispel":0,"medal_boelter":0,"medal_ekins":0,"medal_heroes_of_rassenay":0,"medal_tamada_yoshio":0,"max_piercing_series":0,"medal_radley_walters":0,"kamikaze":0,"sinai":0,"sniper":0,"medal_tarczay":0,"scout":0,"medal_oskin":0,"medal_burda":0,"medal_billotte":0,"huntsman":0,"hand_of_death":0,"medal_fadin":0,"medal_lafayette_pool":0,"max_killing_series":0,"medal_lavrinenko":0,"medal_kolobanov":0,"patton_valley":0,"bombardier":0,"medal_abrams":0,"max_invincible_series":0,"medal_poppel":0,"medal_crucial_contribution":0,"raider":0,"max_diehard_series":0,"invincible":0,"lumberjack":0,"sturdy":0,"title_sniper":0,"iron_man":0,"diehard":0,"medal_carius":0,"medal_le_clerc":0,"beasthunter":0,"evileye":0,"medal_nikolas":0},"statistics":{"clan":{"spotted":0,"hits":0,"battle_avg_xp":0,"draws":0,"wins":0,"losses":0,"capture_points":0,"battles":0,"damage_dealt":0,"hits_percents":0,"damage_received":0,"shots":0,"xp":0,"frags":0,"survived_battles":0,"dropped_capture_points":0},"all":{"spotted":0,"hits":0,"battle_avg_xp":0,"draws":0,"wins":7,"losses":0,"capture_points":0,"battles":10,"damage_dealt":0,"hits_percents":0,"damage_received":0,"shots":0,"xp":0,"frags":0,"survived_battles":0,"dropped_capture_points":0},"max_xp":0,"wins":7,"company":{"spotted":0,"hits":0,"battle_avg_xp":0,"draws":0,"wins":0,"losses":0,"capture_points":0,"battles":0,"damage_dealt":0,"hits_percents":0,"damage_received":0,"shots":0,"xp":0,"frags":0,"survived_battles":0,"dropped_capture_points":0},"battles":10,"max_frags":0,"win_and_survived":0},"last_battle_time":0,"mark_of_mastery":2,"in_garage":0,"tank_id":321}

 

2. Кроме того достаточно избыточны поля медалей для каждого танка пользователя, каждая такая строчка занимает около 1 кб текста на 1 танк, при 50-100 танках игрока размер пустой информации становится существенен. Более оптимальном было бы переназначит структуру, где корнем является номер(имя) медали, а значениями из списка id танков где эта медаль была получена.

Spoiler

 

"medal_dumitru":0,"invader":0,"medal_lehvaslaiho":0,"warrior":0,"medal_halonen":0,"medal_pascucci":0,"medal_orlik":0,"medal_brothers_in_arms":0,"mousebane":0,"medal_bruno_pietro":0,"medal_delanglade":0,"lucky_devil":0,"defender":0,"armor_piercer":0,"medal_kay":0,"supporter":0,"steelwall":0,"max_sniper_series":0,"medal_knispel":0,"medal_boelter":0,"medal_ekins":0,"medal_heroes_of_rassenay":0,"medal_tamada_yoshio":0,"max_piercing_series":0,"medal_radley_walters":0,"kamikaze":0,"sinai":0,"sniper":0,"medal_tarczay":0,"scout":0,"medal_oskin":0,"medal_burda":0,"medal_billotte":0,"huntsman":0,"hand_of_death":0,"medal_fadin":0,"medal_lafayette_pool":0,"max_killing_series":0,"medal_lavrinenko":0,"medal_kolobanov":0,"patton_valley":0,"bombardier":0,"medal_abrams":0,"max_invincible_series":0,"medal_poppel":0,"medal_crucial_contribution":0,"raider":0,"max_diehard_series":0,"invincible":0,"lumberjack":0,"sturdy":0,"title_sniper":0,"iron_man":0,"diehard":0,"medal_carius":0,"medal_le_clerc":0,"beasthunter":0,"evileye":0,"medal_nikolas":0

 

3.  Вопрос по командным боям понятен, ждем. 

Вопрос в том, что множества  statistics.clan и statistics.company являются пересекаемыми или нет? Т.е. statistics.company - это ротные бои вне клана строго?

 

 

 

1. Методы находятся в разработке, ожидайте

2. Спасибо, мы учтем это предложение

3. Они не пересекаются

Ссылка на комментарий
Поделиться на других сайтах

Игроки
27 публикаций
9 107 боёв
02 Янв 2014 - 16:51 пользователь Terradine сказал:

1. Методы находятся в разработке, ожидайте

Методы уже помечены как "Внимание! Поле будет отключено.", они не работают, а новые еще не вышли, что политике вашей не соответствует:

23 Дек 2013 - 19:29 пользователь Hedeon сказал:

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

 

Мы всегда будем придерживаться следующего пути развития API:
1. Принимается решение об отключении какого либо метода.
2. Выходит новый метод, который содержит функционал старого метода (улучшенный либо переделанный).
3. Мы называем дату отключения старого метода и помечаем метод либо поля как "Внимание! Поле будет отключено."
4. Через некоторое время в указанную дату старый метод отключается.

 

К примеру, метод account/ratings отдает не полностью актуальную информацию, так как уже выпущен метод ratings/accounts. Старый метод account/ratings будет отключен после предварительного уведомления.

 

Старые налаживать планируете или будет назван срок ввода новых?

Ссылка на комментарий
Поделиться на других сайтах

Игроки
35 публикаций
6 026 боёв

 

{
"status": "ok",
"count": 343,
"data": {
"1": {
"nation_i18n": "СССР",
"name": "#ussr_vehicles:T-34",
"level": 5,
"nation": "ussr",
"is_premium": false,
"name_i18n": "Т-34",
"type": "mediumTank",
"tank_id": 1
},
"17": {
"nation_i18n": "Германия",
"name": "#germany_vehicles:PzIV",
"level": 5,
"nation": "germany",
"is_premium": false,
"name_i18n": "Pz.Kpfw. IV",
"type": "mediumTank",
"tank_id": 17
},
"33": {
"nation_i18n": "США",
"name": "#usa_vehicles:T14",
"level": 5,
"nation": "usa",
"is_premium": true,
"name_i18n": "T14",
"type": "heavyTank",
"tank_id": 33
},
"49": {
"nation_i18n": "Китай",
"name": "#china_vehicles:Ch01_Type59",
"level": 8,
"nation": "china",
"is_premium": true,
"name_i18n": "Type 59",
"type": "mediumTank",
"tank_id": 49
}
...

 ,
Полный
Я переделываю его а массив.
Есть ещё 1 код
PHP код:

Spoiler

 

{
"status": "ok",
"count": 1,
"data": {
"4698938": [
{
"mark_of_mastery": 4,
"tank_id": 3585
},
{
"mark_of_mastery": 4,
"tank_id": 15649
},
{
"mark_of_mastery": 4,
"tank_id": 6657
},
{
"mark_of_mastery": 3,
"tank_id": 55297
},
{
"mark_of_mastery": 2,
"tank_id": 15137
},
{
"mark_of_mastery": 3,
"tank_id": 6465
},
...

Полный
Как видим , у пользователя ввывод все его танки по id ,а в энциклопедии по id можно узнать данные о техники.Вот мне надо получить данные по всем танкам пользователя , каторые у него есть , и занести это в массив.
Для json кодов использую json_decode.

Ссылка на комментарий
Поделиться на других сайтах

Игроки
35 публикаций
6 026 боёв
02 Янв 2014 - 11:29 пользователь NAGlBAT0R сказал:

 

"medal_dumitru":0,"invader":0,"medal_lehvaslaiho":0,"warrior":0,"medal_halonen":0,"medal_pascucci":0,"medal_orlik":0,"medal_brothers_in_arms":0,"mousebane":0,"medal_bruno_pietro":0,"medal_delanglade":0,"lucky_devil":0,"defender":0,"armor_piercer":0,"medal_kay":0,"supporter":0,"steelwall":0,"max_sniper_series":0,"medal_knispel":0,"medal_boelter":0,"medal_ekins":0,"medal_heroes_of_rassenay":0,"medal_tamada_yoshio":0,"max_piercing_series":0,"medal_radley_walters":0,"kamikaze":0,"sinai":0,"sniper":0,"medal_tarczay":0,"scout":0,"medal_oskin":0,"medal_burda":0,"medal_billotte":0,"huntsman":0,"hand_of_death":0,"medal_fadin":0,"medal_lafayette_pool":0,"max_killing_series":0,"medal_lavrinenko":0,"medal_kolobanov":0,"patton_valley":0,"bombardier":0,"medal_abrams":0,"max_invincible_series":0,"medal_poppel":0,"medal_crucial_contribution":0,"raider":0,"max_diehard_series":0,"invincible":0,"lumberjack":0,"sturdy":0,"title_sniper":0,"iron_man":0,"diehard":0,"medal_carius":0,"medal_le_clerc":0,"beasthunter":0,"evileye":0,"medal_nikolas":0

 

 

 

В fields укажи интересующие тебя поля , и не компосируй Разработчикам мозг!

Изменено пользователем vladsyper100
  • Плюс 3
Ссылка на комментарий
Поделиться на других сайтах

Игроки
12 публикаций
42 514 боёв
31 Дек 2013 - 15:21 пользователь thunderspb сказал:


ты не повериш, но я так тебе благодарен за то что ты мня послал на эти ссылки которые я посещёл ещё при первой попытке найти нужную мне информацию. дело в том, что наш клановский буспонтовый и безкорыстный сайт вот уже не первый раз кто то пытается сломать, а кто то может и другое задумал, так что я пришол к такому выводу что на днях снесу движок и базу данных, и всё сделаю заного, только на этот раз попробую не устанавливать вообще ни одного модуля, и буду пытаться, чего бы мне это не стоило, начать изучение движка, айпи и пшп, так как это единственный верный путь. И первое что мне сейчас жизненно необходими для того чтобы всё начать заного, это попробовать разобраться с методом авторизации, а именно с редиректом на мой сайт, я так понимаю что должно быть чтото вроде redirect_uri=http://dgrad-clan.ru/......  но не понимаю пока куда именно редирект направить, или может вообще нужно отдельный модуль писать ? в дерриктории /dgrad-clan.ru/node/  есть чтото там про токены и прочие файлы, может туды куды или может возможны оба варианта, но из-за каких нибудь соображений безопастности лучше свой модуль писать ? конечноже дружище я всегда буду пытаться сам чтото узнать или познать, но порой невозможно начать даже двигаться кудато, незная куда :) поэтому от души благодарен тебе буду если подскажеш верный путь заблудшему страннику :)  и кстати думал ли кто из вас создать тему на форуме для начинающих разработчиков как я ?  я прекрасно понимаю что таких форумов в нете тьма тмущая, но ниразу не регестрировался не на одном из них так как даже незнаю их и чем они занимаются, а вы всё таки люди то хорошие :) и мотивы ваши видны, и деньги вы зарабатываете вовсе не на своём форуме, и просто доверие к вам есть ! :) 

P.S. а про тему эт я к тому, что у меня ещё чувствую будет много вопросов касаемо безопасности и надёжности сайта, а подобные вопросы всё таки лучше задавать тем кому доверяеш и кого знаеш (железная логика :) тем более что сайт наш будет являться бескорыстным фан-проектом :) и, кстати неплохо начал набирать посещаемость в один момент, и 100% я уверен что если приложить туда много усилий и времени, то тыщ по 50 в неделю просмотров будет :) если интересно - зайди глянь, вирусов вроде никто не обнаруживал там покачто, да и не взломали его ещё вродебы, но в журнале логов токай ППЦ, было бы кому это всё показать :) так что вопрос вашей аунтефикации - это на данный момент главный вопрос безопасности, так как вообще хочу сделать на сайте лиш только вашу утинтиритфублинкацию :)

Изменено пользователем mk7387
  • Плюс 2
Ссылка на комментарий
Поделиться на других сайтах

Игроки
1 781 публикация
29 809 боёв
Согласен из mk7387 много бы вопросов бы пропало и темже помогли фан сайтам
  • Плюс 3
Ссылка на комментарий
Поделиться на других сайтах

Игроки
422 публикации
15 663 боя
06 Янв 2014 - 21:48 пользователь vladsyper100 сказал:

...

Лично я не понял суть вашего поста - вы отвечаете на вопрос или задаете свой?

P.S. замените в своем сообщении application_id на "demo", так как публикация его запрещена.

Ссылка на комментарий
Поделиться на других сайтах

Игроки
422 публикации
15 663 боя

Авторизация при помощи WG Public API


20.08.2014 cтатья переехала на хабрахабр


12.07.2014 добавлен плагин для WordPress 

Изменено пользователем Гость
  • Плюс 13
Ссылка на комментарий
Поделиться на других сайтах

Игроки
120 публикаций
15 677 боёв
09 Янв 2014 - 00:42 пользователь STREJlA сказал:

 

Попробую помочь вам в этом деле.


Этап первый. Авторизация.

Теория:

Spoiler

 

Задача: на основе WG API разработать модуль авторизации на сайте.

Необходимый результат: авторизация в один клик.


Для аутентификации пользователей на данный момент есть три метода

auth/login - этот метод используется, непосредственно, для авторизации.

auth/prolongate - с помощью этого метода мы можем продлить access_token без участия пользователя (а так же получить некоторые дополнительные данные)

auth/logout - метод для уничтожения access_token

 

Стоит заметить, что в примере идет описание работы серверного приложения.

Метод auth/login разработан для получения сторонним приложением (нашим сайтом) ключа доступа - access_token - который дает возможность получить детальные данные о игроке WG, если тот дает на это согласие.

Да, на основе метода можно создать модуль авторизации, но это не основная задача метода.

Вариант решения данной задачи я обсуждал с MustBeDead, его комментарий:

Spoiler

 

На текущий момент access_token необходим всего лишь для получения приватных данных в запросах.

Вы же пытаетесь интегрировать получение ключа доступа к приватным данным (access_token) с авторизацией на портале.

Мне неизвестна специфика работы Вашего портала, поэтому сложно рекомендовать что-то конкретное.

Можно использовать и предложенный Вами вариант, как временный.

 

Обратите внимание!

Принято решение расширить возможности метода auth/login и будет введено разделение (при успешно введенных сведениях):
1) На один URL будет сделана переадресация пользователя;
2) На второй будет отправлены сведения по авторизации (методом POST или GET).

 Это значит, что в ближайшее время работа метода изменится, нужно будет оперативно отреагировать и изменить модуль авторизации.

 

Вернемся к теории.

Что мы будем делать:

  1. Генерировать ссылку для перенаправления пользователя.*
  2. Перенаправлять пользователя на страницу ввода емейла, пароля.
  3. Ждать возврата пользователя.
  4. Проверять данные, которые получим после возврата пользователя
  5. ну и дальше по обстоятельствам =)

*В принципе,наверно, ссылку можно сгенерировать всего один раз, а использовать многократно... но передавая одни и те же параметры - мы получаем разные ссылки - круто же, да? Именно поэтому мы и будем генерировать ссылку каждый раз. :tongue:

А теперь подробнее.

1.

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

Ссылка генерируется самим wg на основе нескольких параметров, которые мы и передадим.

$APPLICATION_ID - это (барабанная дробь:smiles:application_id нашего приложения.

$SITE_ADR - это параметр redirect_uri - ссылка на наш скрипт обработчик. Она будет иметь вид http://example.com/auth.php

nofollow=1 Значение true параметра nofollow говорит о том, что нам нужно получить именно ссылку

Наш auth.php будет выполнять сразу две задачи: генерировать ссылку, и производить авторизацию. (А со временем,в примере, и logout добавится)

Для того, что бы сказать нашему скрипту, что нам нужно сгенерировать ссылку, передадим в POST запросе параметр GetUrl

2.

Переадресовывать пользователя мы будем с помощью javascript.

Используя js мы сможем написать "Загрузка..." (или вставить loader.gif) после клика по кнопочке "Войти" - это всегда выглядит красиво.

В то время, когда пользователь восхищается надписью (ну или картинкой), мы отправим запрос к api, получим ссылку, и наконец таки перенаправим пользователя по ней.

3.

После того как игрок авторизируется на сайте WG и разрешит нашему сайту просматривать его детальную статистику он будет перенаправлен на 

$SITE_ADR?&status=ok&access_token=XXX&nickname=STREJlA&account_id=422766&expires_at=1389218111

Если не произойдет никаких ошибок...

Таким образом наш скрипт получит данные

status access_token nickname account_id expires_at

Но все эти данные нужно проверить!

4.

Если мы планируем делать именно авторизацию, то мы должны точно знать, что полученные данные правдивы и переданы именно с сайта WG, а не прописаны вручную.**

** Вот именно из-за этого момента и будет переделана работа метода - на данный момент мы не можем точно знать, пришел ли игрок с сайта wargaming с этими параметрами или сам набрал их в адресной строке.***

*** $_SERVER['HTTP_REFERER'] не дает полной гарантии.

Для того, что бы проверить правдивость данных мы воспользуемся методом auth/prolongate*

*Это один из вариантов. Кроме пролонга мы можем так же сделать запрос на account/info с полученным токеном - если удастся получить приватные данные, значит все ок.

Воспользовавшись им мы сможем проверить, действительный ли access_token  мы получили, и кому (account_id) он принадлежит.

5.

Если все в порядке, мы запишем нужные данные в БД, установим пользователю куки (или пропишем данные в сессию), и будем знать, что пользователь авторизирован.

 Практика

Spoiler

 

 

P.S. Общество программистов/разработчиков - интересно тем, что люди, которых объединяет одно увлечение, почему то не слишком рвутся помогать другим.

Да, учить программирование - это интересно. Но и сложно.

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

Потому не воспринимайте негативные отзывы, по типу "ищи сам", "если Вам лень, почему я должен за Вас искать" и тп.. всерьез.

Если вы решили заниматься разработкой сайтов, если вам действительно это нравится - уверяю Вас, вы сделали правильный выбор - эта тема реально интересна.

 

Скажите, может, вы в курсе, ошибка это метода или нет: вызов auth/login всегда приводит к появлению окна ввода логина/пароля даже в том случае, когда вход уже выполнен.

Ссылка на комментарий
Поделиться на других сайтах

Игроки
120 публикаций
15 677 боёв

Вопрос к разработчикам: почему в статистике по технике многие поля просто пустые?
Например, ниже только количество побед и общее число боев, хотя полей немало:

"all": {                        "spotted": 0,                        "hits": 0,                        "battle_avg_xp": 0,                        "draws": 0,                        "wins": 534,                        "losses": 0,                        "capture_points": 0,                        "battles": 973,                        "damage_dealt": 0,                        "hits_percents": 0,                        "damage_received": 0,                        "shots": 0,                        "xp": 0,                        "frags": 0,                        "survived_battles": 0,                        "dropped_capture_points": 0                    },                    "max_xp": 0,                    "wins": 534
Ссылка на комментарий
Поделиться на других сайтах

Игроки
422 публикации
15 663 боя
09 Янв 2014 - 11:35 пользователь GinoPane сказал:

 

Скажите, может, вы в курсе, ошибка это метода или нет: вызов auth/login всегда приводит к появлению окна ввода логина/пароля даже в том случае, когда вход уже выполнен.

Судя по тому, что мыло уже заполнено - и поле ввода мыла disable, так и задумано.

Изменено пользователем Гость
Ссылка на комментарий
Поделиться на других сайтах

Игроки
120 публикаций
15 677 боёв
09 Янв 2014 - 14:49 пользователь STREJlA сказал:

Судя по тому, что мыло уже заполнено - и поле ввода мыла disable, так и задумано.

В кабинете разработчика можно найти комментарии к полям - Внимание! Поле будет отключено.

Это значит, что данные по данным полям отдаваться не будут, но для поддержания формата ответа параметры присутствуют, со значениями 0

 

Возможно Вам будет интересно:
Категория:
Wargaming Public API
Подкатегория:
Пожелания по улучшению WG Developer Partner Program

Внимание! Поле будет отключено.

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


Здравствуйте.

Спасибо за Ваше предложение. Мы его рассмотрим в ближайшем будущем.
В ближайших обновлениях Public API в Кабинет Разработчика будет добавлен раздел с описанием будущих обновлений, где будут описаны причины отключений полей/методов и срок их отключений. 

______________________________________________
С уважением,
Владимир Ландышев
Команда поддержки разработчиков
Wargaming.net

 

 

 

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

 
09 Янв 2014 - 14:49 пользователь STREJlA сказал:

Судя по тому, что мыло уже заполнено - и поле ввода мыла disable, так и задумано.

В кабинете разработчика можно найти комментарии к полям - Внимание! Поле будет отключено.

Это значит, что данные по данным полям отдаваться не будут, но для поддержания формата ответа параметры присутствуют, со значениями 0

 

Возможно Вам будет интересно:
Категория:
Wargaming Public API
Подкатегория:
Пожелания по улучшению WG Developer Partner Program

Внимание! Поле будет отключено.

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


Здравствуйте.

Спасибо за Ваше предложение. Мы его рассмотрим в ближайшем будущем.
В ближайших обновлениях Public API в Кабинет Разработчика будет добавлен раздел с описанием будущих обновлений, где будут описаны причины отключений полей/методов и срок их отключений. 

______________________________________________
С уважением,
Владимир Ландышев
Команда поддержки разработчиков
Wargaming.net

 

 

 

Да, поле заполнено, емейл в disable. Однако, как выяснилось, это происходит не всегда. Иногда все хорошо и можно обойтись одним методом для аутентификации. К сожалению, весь тестовый случай представить не могу, но из API Explorer-а идут постоянные перенаправления, что недопустимо при использовании в реальном проекте, а вот если применять возвращаемый методом auth/login url при переданном параметре nofollow, то все нормально.


 
Ссылка на комментарий
Поделиться на других сайтах

Игроки
422 публикации
15 663 боя
09 Янв 2014 - 14:55 пользователь GinoPane сказал:

 

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

Приношу свои извинения, в своем ответе я был не прав.

Да, действительно некоторые поля отключены, но в Вашем случае причина не в этом.

Общая статистика должна отдаваться корректно. Уточните параметры запроса (в любом случае их у Вас спросят)

 
09 Янв 2014 - 14:59 пользователь GinoPane сказал:

 

Да, поле заполнено, емейл в disable. Однако, как выяснилось, это происходит не всегда. Иногда все хорошо и можно обойтись одним методом для аутентификации. К сожалению, весь тестовый случай представить не могу, но из API Explorer-а идут постоянные перенаправления, что недопустимо при использовании в реальном проекте, а вот если применять возвращаемый методом auth/login url при переданном параметре nofollow, то все нормально.

Хм.. Кажется такое происходит если мы перенаправляем пользователя по только что сгенерированной ссылке.

Попробовал получить ссылку раз, а использовать многократно - да, действительно, повторный ввод пароля не требуется.

Ждем разъяснений разработчиков.

 

Добавлено спустя несколько минут.

Очень странное свойство было обнаружено...

При генерации ссылки мы получаем вот что:

https:\/\/ru.wargaming.net\/id/openid\/?openid.assoc_handle=%7BHMAC-SHA1%7D%7B52aedb32%7D%7Be31J1g%3D%3D%7D&openid.ax.if_available=ext0%2Cext1%2Cext2&openid.ax.mode=fetch_request&openid.ax.type.ext0=http%3A%2F%2Faxschema.openid.wargaming.net%2Fspa%2Fid&openid.ax.type.ext1=http%3A%2F%2Faxschema.org%2FnamePerson%2Ffriendly&openid.ax.type.ext2=http%3A%2F%2Faxschema.openid.wargaming.net%2Fidentity%2Fconfirmation&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.realm=https%3A%2F%2Fapi.worldoftanks.ru%2F&openid.return_to=https%3A%2F%2Fapi.worldoftanks.ru%2Fwot%2Fauth%2Fcomplete%2F%3Fredirect_uri%3Dhttp%253A%252F%252F109.162.81.28%252Fsys%252Fauth.php%26application_id%3Da985c5039991f32610c69e01ea143cb4%26expires_at%3D300%26janrain_nonce%3D2014-01-09T13%253A25%253A29ZG79bBS

Если мы совершаем переход по ней - вводить пароль повторно не нужно.

Но если же переход совершается по сслыке, в которой убраны экранирующие символы  - 

https: //ru.wargaming.net/id/openid/?openid.assoc_handle=%7BHMAC-SHA1%7D%7B52aedb32%7D%7Be31J1g%3D%3D%7D&o...

То требуется ввод пароля (и капчи =( )


  Изменено пользователем Гость
Ссылка на комментарий
Поделиться на других сайтах

Игроки
120 публикаций
15 677 боёв

И по модулям есть вопросы. В частности, смотрим, что у Хуммеля есть пушка с идентификатором 1812. Ищем это орудие в списке орудий, и получаем, что все хорошо, но информации нет:) Хотелось бы увидеть, насколько в процентах работоспособен api для уже написанных методов. 

 


{
"status": "ok",
"count": 1,
"data": {
"1556": null
}
09 Янв 2014 - 15:19 пользователь STREJlA сказал:

Хм.. Кажется такое происходит если мы перенаправляем пользователя по только что сгенерированной ссылке.

Попробовал получить ссылку раз, а использовать многократно - да, действительно, повторный ввод пароля не требуется.

Ждем разъяснений разработчиков.

 

Добавлено спустя несколько минут.

Очень странное свойство было обнаружено...

При генерации ссылки мы получаем вот что:

https:\/\/ru.wargaming.net\/id/openid\/?openid.assoc_handle=%7BHMAC-SHA1%7D%7B52aedb32%7D%7Be31J1g%3D%3D%7D&openid.ax.if_available=ext0%2Cext1%2Cext2&openid.ax.mode=fetch_request&openid.ax.type.ext0=http%3A%2F%2Faxschema.openid.wargaming.net%2Fspa%2Fid&openid.ax.type.ext1=http%3A%2F%2Faxschema.org%2FnamePerson%2Ffriendly&openid.ax.type.ext2=http%3A%2F%2Faxschema.openid.wargaming.net%2Fidentity%2Fconfirmation&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.realm=https%3A%2F%2Fapi.worldoftanks.ru%2F&openid.return_to=https%3A%2F%2Fapi.worldoftanks.ru%2Fwot%2Fauth%2Fcomplete%2F%3Fredirect_uri%3Dhttp%253A%252F%252F109.162.81.28%252Fsys%252Fauth.php%26application_id%3Da985c5039991f32610c69e01ea143cb4%26expires_at%3D300%26janrain_nonce%3D2014-01-09T13%253A25%253A29ZG79bBS

Если мы совершаем переход по ней - вводить пароль повторно не нужно.

Но если же переход совершается по сслыке, в которой убраны экранирующие символы  - 

https: //ru.wargaming.net/id/openid/?openid.assoc_handle=%7BHMAC-SHA1%7D%7B52aedb32%7D%7Be31J1g%3D%3D%7D&o...

То требуется ввод пароля (и капчи =( )

 

Да-да, где-то чего-то намутили:)


 
Ссылка на комментарий
Поделиться на других сайтах

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

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас
  • Сейчас на странице   0 пользователей

    • Эту страницу никто не просматривает.
×
×
  • Создать...