Rim4i4ok
#1
без гильдии
могущество: 2014

дварф Rim4i4ok
50 уровня
Добрый день.

Захотелось сделать клиент под андроид.
Т.к. делаю это первый раз, то идет очень трудно.

Прочел api сказки, смотрел примеры вызова методов.
Но под андроидом никак не получается правильно авторизоваться.

Может кто-нибудь этим занимался?
Буду благодарен за любую помощь.
imposeren
#2
[МОЛОТ] Рекрут
могущество: 1361
длань судьбы
дварф Фрез
105 уровня
Может забываешь передавать csrtf или куки?

вот пример на питоне:
https://github.com/imposeren/thetaleapipy/blob/master/thetaleapi.py#L50

Как видишь, случайный токен есть и в хедерах и в куки. После запроса сервер возвращает новый csrf токен, который ты должен использовать при следующих запросах. Этот токен можно вытянуть из хедеров ответа. Ну и сессии должны поддерживаться твоей либой, что бы в хедерах или куках был нужный sessionid, либо придётся вручную настраивать хедеры при каждом запросе.
Дарклидер
#3
[^_^] Рекрут
могущество: 562

эльф Гудлауг
46 уровня
csrf_token = uuid.uuid4().hex
Шта?
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
Замена
document.cookie.match(/csrftoken=([^\s;]*)/)[1];
Tiendil
#4
[НБ] Магистр
могущество: 14658
разработчик
дварф Халлр
105 уровня
Но под андроидом никак не получается правильно авторизоваться.
Наверняка что-то да получается. только не то, что надо. Какой конкретно результат?
Rim4i4ok
#5
без гильдии
могущество: 2014

дварф Rim4i4ok
50 уровня
Вся проблема как раз в "CSRF verification failed. Request aborted."
Не получается пройти верификацию.
В заголовке его передаю.



Сообщение изменено
Rim4i4ok
#6
без гильдии
могущество: 2014

дварф Rim4i4ok
50 уровня
Вроде бы разобрался.

Надо было изначально просто GET-запрос к сказке сделать. Из этого получаю куки и сессию.
А дальше через POST--запрос можно авторизоваться.



Сообщение изменено
imposeren
#7
[МОЛОТ] Рекрут
могущество: 1361
длань судьбы
дварф Фрез
105 уровня
Дарклидер
спойлер csrf_token = uuid.uuid4().hex
Шта?
написано ведь, что можно выбрать случайный токен при первом запросе. Вот это и есть случайный токен
Rim4i4ok
#8
без гильдии
могущество: 2014

дварф Rim4i4ok
50 уровня
Так и пытался изначально делать.
Делал рандомный токен и делал запрос на сервер.
Сервер ругался как было указано выше -
Вся проблема как раз в “CSRF verification failed. Request aborted.”
И бросал 403 в ответ.
Rim4i4ok
#9
без гильдии
могущество: 2014

дварф Rim4i4ok
50 уровня
Создал клиентик под android.

Называется "The Tale client".
Его можно найти в магазине Яндекса (когда появится возможность - перенесу его в гугловский магазин).

Реализовано:
1. Просмотр информации об персонаже
2. Просмотр дневника
3. Просмотр журнала
4. Просмотр заданий

Комментарии/Советы/Пожелания приветствуются.
Anemos
#10
без гильдии
могущество: 6

эльфийка Лоранель
68 уровня
Тогда лучше apk где-то выложи, а то я яндекс маркет устанавливать не хочу. :)
Грустный Ворон
#11
[LjUA] Магистр
могущество: 47938
модератор
эльф Наэр Крабан
144 уровня
Anemos
я в андроиде не разбираюсь.. но вот, вдруг поможет http://the-tale.org/forum/threads/1701
Anemos
#12
без гильдии
могущество: 6

эльфийка Лоранель
68 уровня
О, спасибо :)