Yury_SNEGOV Опубликовано: 22 ноября, 2013 Игроки 1 160 публикаций 69 896 боёв Поделиться Опубликовано: 22 ноября, 2013 Конечно. (тьфу-тьфу)url_WOT_AccountRating = 'http://worldoftanks.ru/clanwars/eventmap/alley/find_user/?user=%ACCOUNT_NAME%';Подсказка:X-Requested-With: XMLHttpRequestРезультат: http://cdn-frm-eu.wargaming.net/wot/ru/uploads/monthly_11_2013/post-4357430-0-66815600-1385086266_thumb.png tankomatic.ru - подробная статистика игроков и кланов, рейтинги, генератор юзербаров Ссылка на комментарий
anonym_cQDOx2iLJmUS Опубликовано: 22 ноября, 2013 Игроки 1 224 публикации 15 809 боёв Поделиться Опубликовано: 22 ноября, 2013 Да, спасибо, я тормозил, у меня ж до сих пор поиск на этом принципе. Привык уже API запрашивать... Ссылка на комментарий
anonym_xSx7yak5i1Td Опубликовано: 24 ноября, 2013 Игроки 4 публикации 6 142 боя Поделиться Опубликовано: 24 ноября, 2013 (изменено) Что означает параметр language в запросе?https://api.worldoft...e=en&search=redИнтересует как привязать поиск по серверам: Америка, Европа, Азия, Россия? Изменено 24 ноября, 2013 пользователем Гость Ссылка на комментарий
Hedeon Опубликовано: 25 ноября, 2013 Игроки 569 публикаций 20 955 боёв Автор Поделиться Опубликовано: 25 ноября, 2013 24 Ноя 2013 - 22:37 пользователь daimonkor сказал:Что означает параметр language в запросе?https://api.worldoft...e=en&search=redИнтересует как привязать поиск по серверам: Америка, Европа, Азия, Россия?Параметр language показывает, на каком языке будут выводится локализованные поля (%fieldname%_i18n).Пример для танка КВ-5:Локализованное поле – название танка (name_i18n).https://api.worldoft...e&tank_id=53249Spoiler{"status": "ok","count": 1,"data": {"53249": {"name_i18n": "КВ-5","name": "#ussr_vehicles:KV-5"}} } https://api.worldoft...e&tank_id=53249Spoiler{"status": "ok","count": 1,"data": {"53249": {"name_i18n": "KV-5","name": "#ussr_vehicles:KV-5"}}} Для поиска по конкретному кластеру Вам необходим application_id того кластера, на котором производится поиск. Осуществить поиск, к примеру, на EU кластере с помощью application_id с RU кластера невозможно. Во время закрытого бета теста возможно использование только application_id только русского региона. После его окончания будут доступны остальные регионы мира. Ссылка на комментарий
Softovick Опубликовано: 1 декабря, 2013 Игроки 37 публикаций 12 879 боёв Поделиться Опубликовано: 1 декабря, 2013 Всем привет. Я или просто туплю по зимнему, никак не соображу.Прошу подмочь мне в таких вопросах:1. Какая все таки авторизация в API 2.0 - OpenID или OAuth (и какой 1 или 2) ?2. Если кто-то сталкивался с библиотекой hybridauth - пытаюсь написать под нее провайдера для WG. В простейшем случае через обычную OpenID срабатывает, а вот как правильно написать для API 2.0, никак не пойму. Может кто натолкнуть на нужно направление, например, по аналогии с чьей API работает API WG ? Если у аналогии есть готовый провайдер для hybridauth, то можно будет по подобию сделать свое... Если кто подскажет, выскажу спасибо. Ссылка на комментарий
anonym_rReCAqRtDWZ4 Опубликовано: 1 декабря, 2013 Игроки 283 публикации 2 868 боёв Поделиться Опубликовано: 1 декабря, 2013 01 Дек 2013 - 15:38 пользователь SamurayDjek сказал:Всем привет. Я или просто туплю по зимнему, никак не соображу.Прошу подмочь мне в таких вопросах:1. Какая все таки авторизация в API 2.0 - OpenID или OAuth (и какой 1 или 2) ?2. Если кто-то сталкивался с библиотекой hybridauth - пытаюсь написать под нее провайдера для WG. В простейшем случае через обычную OpenID срабатывает, а вот как правильно написать для API 2.0, никак не пойму. Может кто натолкнуть на нужно направление, например, по аналогии с чьей API работает API WG ? Если у аналогии есть готовый провайдер для hybridauth, то можно будет по подобию сделать свое... Если кто подскажет, выскажу спасибо.Авторизация средствами Public API (метод auth/login) необходима для запросов с предоставлением значений с приватной информацией (количество игрового золота, кредитов, опыта, информация о возможной блокировке учетной записи и сроках выхода игрового аккаунта из бана, количество фишек клана (для лидера клана) и прочая информация). Происходит в несколько этапов:1) Производим запрос (со значением nofollow=1) по безопасному протоколу (SSL) через, например, cURL (все данные скрыты, в том числе application_id).2) В ответе получаем в значении location ссылку для пользователя.3) Перенаправляем пользователя для авторизации на портал Wargaming.4) Пользователь указывает на портале авторизационные данные.5) Ожидаем статус авторизации на redirect_uri (на данный URL будет отправлен пользователь + access_token, expires_at, account_id, nickname - метод GET). Пример такого приложения: <?php//ID серверного приложения$appid = "9332f70c197a9407b36ef4d8d9f5b921";//Страница, на которую будет отправлен пользователь после успешно введенных данных$to = "https://ru.wargaming.net/developers/api_explorer/wot/auth/login/complete/";//Тело запроса$url = "https://api.worldoftanks.ru/wot/auth/login/?application_id=$appid&redirect_uri=$to&nofollow=1";$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_TIMEOUT, 60);$res = json_decode(curl_exec($curl), true);//Значение location ответа$loc = $res['data']['location'];//Перенаправляем пользователя для авторизацииheader("Location:$loc");?>Данный скрипт можно использовать и для автономных типов приложений.Более подробная информация размещена на странице Кабинета разработчика: https://ru.wargaming...wot/auth/login/ Второй тип авторизации.Используя свой Wargaming.net ID в качестве OpenID идентификатора.В случае успешно введенного логина и пароля передается только игровое имя (ник) и ссылка на профиль – никакой существенной информации не передается.Используется для упрощенной регистрации пользователя, допустим, на фан-сайтах.Если необходимо, могу пояснить данный тип поподробнее. 3 Ссылка на комментарий
Softovick Опубликовано: 1 декабря, 2013 Игроки 37 публикаций 12 879 боёв Поделиться Опубликовано: 1 декабря, 2013 (изменено) 01 Дек 2013 - 16:13 пользователь MustBeDead сказал:Если необходимо, могу пояснить данный тип поподробнее.Про OpenID понял, спасибо. Для этого варианта я уже сделал авторизацию пользователей через Hybridauth, работает нормально. Но там нет как раз этих самых access_token и другой инфы.А вот про Public API прошу уточнить - получается все таки не OpenID и не OAuth? Изменено 1 декабря, 2013 пользователем SamurayDjek Ссылка на комментарий
anonym_rReCAqRtDWZ4 Опубликовано: 2 декабря, 2013 Игроки 283 публикации 2 868 боёв Поделиться Опубликовано: 2 декабря, 2013 01 Дек 2013 - 20:47 пользователь SamurayDjek сказал:Про OpenID понял, спасибо. Для этого варианта я уже сделал авторизацию пользователей через Hybridauth, работает нормально. Но там нет как раз этих самых access_token и другой инфы.А вот про Public API прошу уточнить - получается все таки не OpenID и не OAuth?Обратите, пожалуйста, внимание – данный тип авторизации не подразумевает передачу значительных сведений. Вашему сайту передаётся только игровое имя (никнейм) и ссылка на профиль игрока (в настоящий момент — на игровой профиль на официальном портале World of Tanks).Для авторизации через OpenID можно использовать библиотеки (в зависимости от языка программирования): http://openid.net/de...pers/libraries/Данный тип авторизации не предназначен для работы с Public API. Для запросов приватных данных пользователя средствами API (количество игрового золота и кредитов, опыт и другая информация) необходимо использовать авторизацию WarGaming.Net ID (OpenID), вызвав метод auth/login (упрощенную версию скрипта на php я приводил ранее). Более подробную информацию по данному методу можно найти в документации Кабинета разработчика. 2 Ссылка на комментарий
Softovick Опубликовано: 2 декабря, 2013 Игроки 37 публикаций 12 879 боёв Поделиться Опубликовано: 2 декабря, 2013 (изменено) Спасибо за предоставленное подробное описание.Я просил ответа гораздо меньшего, но такие подробности точно пригодятся.Как всегда ответ в итоге удалось получить методом научного тыка, а также несколько раз перечитав документации и комментарии MustBeDead.Делюсь результатами, используется библиотека Hybridauth.Провайдер для OpenID строится на основе уже готового класса Hybrid_Provider_Model_OpenID и занимает всего несколько строк. Выглядит он так<?phpclass Hybrid_Providers_WarGaming extends Hybrid_Provider_Model_OpenID{var $openidIdentifier = "http://ru.wargaming.net/id/";/*** finish login step*/function loginFinish(){parent::loginFinish();$this->user->profile->profileURL = $this->user->profile->identifier;// Отделяем из url ID пользователя, пригодится$this->user->profile->identifier = preg_replace( '/^[^0-9]+([0-9]+)-.+$/', '$1', $this->user->profile->identifier );Hybrid_Auth::storage()->set( "hauth_session.{$this->providerId}.user", $this->user );}}Этот код позволяет авторизоваться через Wargaming.Net OpenID и получить ссылку на профиль игрока, его ник и ID.В случае же авторизации через Public API пришлось описывать свой класс, на основе встроенного Hybrid_Provider_Model, так как это не OAuth (в случае OAuth код бы на порядок упростился и был бы чуть больше, чем в случае OpenID). Сам код провайдера я пока не готов предоставить, его еще надо вылизать и привести в полное соответствие с требования Public API (выход и продление токена). Пример такого класса можно увидеть в провайдере Facebook, который входит в состав Hybridauth "из коробки". После личного удовлетворения своим кодом, постараюсь выложить его здесь и наверное, отдам Hybridauth, когда можно будет.P.S. а почему бы не использовать стандартизированный OAuth2 ? Стандартный функционал OpenID вполне справляется с задачей, я думаю и стандартный OAuth2 тоже сможет сделать все, что хотите от авторизации, причем в более лучшей и наверняка удобной форме.P.S.S. перечитал описание OAuth - алгоритм очень схож с тем, что предоставляет Public API. Если я ошибаюсь, и это на самом деле все таки OAuth - приношу извенения, слишком мало опыта работы с таким функционалом. Изменено 2 декабря, 2013 пользователем SamurayDjek 1 Ссылка на комментарий
Hedeon Опубликовано: 3 декабря, 2013 Игроки 569 публикаций 20 955 боёв Автор Поделиться Опубликовано: 3 декабря, 2013 03 Дек 2013 - 00:22 пользователь SamurayDjek сказал:...P.S. а почему бы не использовать стандартизированный OAuth2 ? Стандартный функционал OpenID вполне справляется с задачей, я думаю и стандартный OAuth2 тоже сможет сделать все, что хотите от авторизации, причем в более лучшей и наверняка удобной форме.P.S.S. перечитал описание OAuth - алгоритм очень схож с тем, что предоставляет Public API. Если я ошибаюсь, и это на самом деле все таки OAuth - приношу извенения, слишком мало опыта работы с таким функционалом.Авторизация посредством Public API не является OAuth авторизацией. Она разработана на основе общей авторизации на ресурсах Wargaming (Wargaming OpenID) для того, чтобы была возможность получать больше информации через Public API, чем позволяет обычная авторизация посредством OpenID.Идеи о переработке авторизации под аналог OAuth 2.0 есть, однако пока это находится на стадии обсуждения, так как особой необходимости в этом нет. Ссылка на комментарий
Softovick Опубликовано: 3 декабря, 2013 Игроки 37 публикаций 12 879 боёв Поделиться Опубликовано: 3 декабря, 2013 03 Дек 2013 - 12:44 пользователь Hedeon сказал:Авторизация посредством Public API не является OAuth авторизацией. Она разработана на основе общей авторизации на ресурсах Wargaming (Wargaming OpenID) для того, чтобы была возможность получать больше информации через Public API, чем позволяет обычная авторизация посредством OpenID.Идеи о переработки авторизации под аналог OAuth 2.0 есть, однако пока это находится на стадии обсуждения, так как особой необходимости в этом нет.Да, особой необходимости нет, но это возможно упростило бы поддержку и со стороны серверной и со стороны клиентской части за счет общестандартного механизма, для которого уже придумали кучу инструментов и библиотек.Например, у нас в Drupal для этого можно было использовать 1-2 модуля, которые настроились бы в админке и я бы смог использовать авторизацию практически без дополнительной разработки, если бы это был OAuth. Ссылка на комментарий
Hedeon Опубликовано: 3 декабря, 2013 Игроки 569 публикаций 20 955 боёв Автор Поделиться Опубликовано: 3 декабря, 2013 03 Дек 2013 - 12:49 пользователь SamurayDjek сказал:Да, особой необходимости нет, но это возможно упростило бы поддержку и со стороны серверной и со стороны клиентской части за счет общестандартного механизма, для которого уже придумали кучу инструментов и библиотек.Например, у нас в Drupal для этого можно было использовать 1-2 модуля, которые настроились бы в админке и я бы смог использовать авторизацию практически без дополнительной разработки, если бы это был OAuth.Мы понимаем, что использование стандартизированных механизмов было бы удобнее для некоторых пользователей, но, к сожалению, в данный момент есть возможность использовать только предложенный нами механизм авторизации посредством Public API.Ваши коментарии будут учтены при дальнейших обсуждениях развития метода auth/login. Ссылка на комментарий
anonym_1csIyn7vyNW7 Опубликовано: 4 декабря, 2013 Игроки 42 публикации 8 262 боя Поделиться Опубликовано: 4 декабря, 2013 А почему методы, которые возвращают некие массивы данных, различаются по структуре ответов?Например, ответ от метода account/list - data это array объектов типа в представлении json.Однако, если сделать запрос clan/list, то data - это уже object, где данные - это members. И собственно, поле 1 (например) - это содержимое ClanDetails, но в виде membera, а не элемента массива.Собственно, если я нигде не просчитался, то в чем разница и зачем так было делать? И если я прав, то почему-бы в одну из следующих версий апи не добавить это маленькой замечательное исправление?В целом, мне как бы все равно, но не очень понятен такой ход. Да и при десериализации вместо List нужно использовать Dictionary (это я про шарп) Ссылка на комментарий
anonym_1csIyn7vyNW7 Опубликовано: 4 декабря, 2013 Игроки 42 публикации 8 262 боя Поделиться Опубликовано: 4 декабря, 2013 где найти значения, которые передаются в member.role в http://wiki.worldoft...ution_of_Rights (табличка снизу) я примерно подобрал значения - privatecommanderdiplomatrecruitvice_leaderleaderrecruitertreasurer Вроде правильно. Неплохо бы было эту (и, возможно подобные этому) данные писать в API в качестве допустимых значений. Как, например, это сделано с языками во входящем параметре. Ссылка на комментарий
anonym_bNamJmmYXvUG Опубликовано: 5 декабря, 2013 Игроки 86 публикаций 23 055 боёв Поделиться Опубликовано: 5 декабря, 2013 04 Дек 2013 - 16:17 пользователь bondarenkod сказал:А почему методы, которые возвращают некие массивы данных, различаются по структуре ответов?Например, ответ от метода account/list - data это array объектов типа в представлении json.Однако, если сделать запрос clan/list, то data - это уже object, где данные - это members. И собственно, поле 1 (например) - это содержимое ClanDetails, но в виде membera, а не элемента массива.Собственно, если я нигде не просчитался, то в чем разница и зачем так было делать? И если я прав, то почему-бы в одну из следующих версий апи не добавить это маленькой замечательное исправление?В целом, мне как бы все равно, но не очень понятен такой ход. Да и при десериализации вместо List нужно использовать Dictionary (это я про шарп)Методы account/list и clan/list одинаковы по структуре и в data возвращают массив элементов, удовлетворяющих условиям поиска.05 Дек 2013 - 00:48 пользователь bondarenkod сказал:где найти значения, которые передаются в member.role в http://wiki.worldoft...ution_of_Rights (табличка снизу)я примерно подобрал значения - privatecommanderdiplomatrecruitvice_leaderleaderrecruitertreasurerВроде правильно. Неплохо бы было эту (и, возможно подобные этому) данные писать в API в качестве допустимых значений. Как, например, это сделано с языками во входящем параметре.А в чем проблема добавить эти значения как константу в свое приложение? Эти данные статичны, а если принять во внимание квоту на количество запросов, то смысл запрашивать статичные данные как-то сам по себе отпадает. Ссылка на комментарий
Drahtigel Опубликовано: 5 декабря, 2013 Игроки 427 публикаций 46 364 боя Поделиться Опубликовано: 5 декабря, 2013 05 Дек 2013 - 08:41 пользователь Terradine сказал:А в чем проблема добавить эти значения как константу в свое приложение? Эти данные статичны, а если принять во внимание квоту на количество запросов, то смысл запрашивать статичные данные как-то сам по себе отпадает.Проблемы то нет, хорошо бы в документации прописать, те значения, которые могут принимать такие поля. Чтобы не играть в "угадайку" :) 1 Сайт клана IS-23 Ссылка на комментарий
anonym_bNamJmmYXvUG Опубликовано: 5 декабря, 2013 Игроки 86 публикаций 23 055 боёв Поделиться Опубликовано: 5 декабря, 2013 05 Дек 2013 - 13:25 пользователь Drahtigel сказал:Проблемы то нет, хорошо бы в документации прописать, те значения, которые могут принимать такие поля. Чтобы не играть в "угадайку" :)Документация в кабинете разработчика будет дополняться, возможно эта информация появится в одном из ближайших обновлений. Ссылка на комментарий
anonym_1csIyn7vyNW7 Опубликовано: 5 декабря, 2013 Игроки 42 публикации 8 262 боя Поделиться Опубликовано: 5 декабря, 2013 05 Дек 2013 - 08:41 пользователь Terradine сказал:Методы account/list и clan/list одинаковы по структуре и в data возвращают массив элементов, удовлетворяющих условиям поиска.Прошу прощения, я ошибся немного.Структуру clan/list, account/list следует сравнивать с clan/info.Зеленым помечен массив. Красным - объект с полями.В случае clan/list и account/list мы видим в data список.В случае деталей клана (куда можно передать несколько id клана), возвращается data как object с полями-объектами, имя которого соответсвует айдишнику клана. И, как по мне, если это было целью такого огорода, информация излишняя.05 Дек 2013 - 08:41 пользователь Terradine сказал:А в чем проблема добавить эти значения как константу в свое приложение? Эти данные статичны, а если принять во внимание квоту на количество запросов, то смысл запрашивать статичные данные как-то сам по себе отпадает.так я и добавил. Заодно важность должности соотвествует позиции в перечислении, при отображении на экране никакие сортировки производить не нужно). [DataContract] public enum EClassMemberRole { [DataMember(Name = "leader")] LeaderRole, [DataMember(Name = "vice_leader")] ViceLeaderRole, [DataMember(Name = "commander")] CommanderRole, [DataMember(Name = "recruiter")] RecruiterRole, [DataMember(Name = "treasurer")] TreasurerRole, [DataMember(Name = "diplomat")] DiplomatRole, [DataMember(Name = "private")] PrivateRole, [DataMember(Name = "recruit")] RecruitRole }Просто я хочу узнать о новых значениях не методом тыка или поиска по сопутсвующим вики, а знать наверняка, что я могу там получить. В данном случае мне пришлось обойти примерно 5 кланов, пока я попал на новые значения (рекрутер и бухгалтер). Обычно, такую информацию пишут уже конкретно в документации. Ссылка на комментарий
anonym_bNamJmmYXvUG Опубликовано: 5 декабря, 2013 Игроки 86 публикаций 23 055 боёв Поделиться Опубликовано: 5 декабря, 2013 05 Дек 2013 - 17:19 пользователь bondarenkod сказал:Структуру clan/list, account/list следует сравнивать с clan/info.Некорректно сравнивать эти запросы, т.к. методы clan/list, account/list возвращают список кланов или игроков, которые подпадают под фильтр запроса, а метод clan/info возвращает данные по конкретному одному клану. Поэтому в первом случае мы и имеем массив. 05 Дек 2013 - 17:19 пользователь bondarenkod сказал:Просто я хочу узнать о новых значениях не методом тыка или поиска по сопутсвующим вики, а знать наверняка, что я могу там получитьИнформация в кабинете разработчика будет дополняться, спасибо за предложение Ссылка на комментарий
anonym_1csIyn7vyNW7 Опубликовано: 5 декабря, 2013 Игроки 42 публикации 8 262 боя Поделиться Опубликовано: 5 декабря, 2013 05 Дек 2013 - 17:35 пользователь Terradine сказал:Некорректно сравнивать эти запросы, т.к. методы clan/list, account/list возвращают список кланов или игроков, которые подпадают под фильтр запроса, а метод clan/info возвращает данные по конкретному одному клану. Поэтому в первом случае мы и имеем массив.В любом случае там не json array как случае clan/list и account/list. Такая же ситуация и с внутренним полем members, где таким же способом описан список членов клана. Не знаю какие мысли и задумки были у авторов этой части кода, но на мой взгляд во всех случаях должны позвращаться json array, хоть при поиске, хоть при перечислении. Спецификации по структуре http://json.org/ , http://www.json.org/json-ru.html. Конкретно - справа структура. Чуть ниже объясненени что такое object, а что такое array. >>данные по конкретному одному клануНет, он возвращает столько данных, сколько ему передали в запросе (до лимита). Т.е. (как по мне) что у поиска, что тут в ответе должен быть массив найденных кланов\игроков\детальной инфы по кланам. Аналогично и для поля members. Там список игроков. Можете сами проверить https://api.worldoft...o&clan_id=1,2,3 Ссылка на комментарий
Рекомендованные публикации
В целях безопасности не указывайте здесь личную информацию о себе или о ком-либо другом, так как мы не сможем защитить её в соответствии с Политикой конфиденциальности Леста Игры.
Пожалуйста, войдите для комментирования
Вы сможете оставить комментарий после входа
Войти сейчас