Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Incorrect signature. (http://www.flasher.ru/forum/showthread.php?t=134931)

xpymbl4 12.01.2010 15:30

Incorrect signature.
 
Сломал мозг. Подскажите пожалуйста что формируется неверно.

Создал тестовое приложение:
Код AS3:

private const private_key:String = '8011929f3d59fb54cedff6083d199967';
private const server_url:String = 'http://www.appsmail.ru/platform/api?';
private const secure:String = '0';
private var session_key:String = '0f34e932e8eb9c9ca19ccc3a1378ffc6';
private var vid:int = 193280512;
private var app_id:int = 429028;

session_key - читается из FlashVars, здесь указано значение на текущий момент.

Конкатенация пар (params):
app_id=429028method=friends.getsession_key=0f34e932e8eb9c9ca19ccc3a1378ffc6

Строка для формирования сигнатуры с помощью MD5 (vid + params + private_key):
193280512app_id=429028method=friends.getsession_key=0f34e932e8eb9c9ca19ccc3a1378ffc68011929f3d59fb54cedff6083d199967

Сигнатура (md5(vid + params + private_key)):
a29a99dd0c5c902b7a5f3193ea4cacb4

Запрос к API:
http://www.appsmail.ru/platform/api?...5f3193ea4cacb4

Sovik 12.01.2010 17:25

Привет!

У тебя vid слишком короткий. Больше похоже на viewer_id. По старой схеме получаешь?

xpymbl4 12.01.2010 18:13

Работаю по новой схеме, vid получаю:
Код AS3:

try {
    vid = int(this.stage.loaderInfo.parameters.vid);
}
catch(e:Error){
}

Получаю вот такое короткое значение: 193280512.
НО
На странице: http://developers.my.mail.ru/wiki/Пе...вую_версию_API
Написано: "Тип данных идентификатора пользователя меняется с четырехбайтового целого (int) на восьмибайтовое беззнаковое (unsigned int64). Таким образом, старые идентификаторы не будут работать при вызовах нового API и наоборот.

Для перехода на новые идентификаторы мы предоставляем специальный метод, который конвертирует старый идентификатор пользователя приложения в новый: users.convertId".
Этот самый метод (http://developers.my.mail.ru/wiki/users.convertId), является "Сервер - Сервер".
Вобщем запутался.... вам приходит vid с флешварс в формате unsigned int64?

Sovik 12.01.2010 18:30

Да. Через flashvars получаю
viewer_id по старой схеме, короткий
vid по новой схеме, длинный int64

Какие у тебя vid и viewer_id? Разные?

xpymbl4 12.01.2010 19:20

Подводный камень найден:
Ошибка в типах:
Код AS3:

vid = int(this.stage.loaderInfo.parameters.vid);

int не вмещал в себя длинное число принимаемое во флешварс (3230460162980788806).
Сделал vid везде стрингом и
Код AS3:

vid = (this.stage.loaderInfo.parameters.vid).toString();

Все заработало.
Спасибо за подсказку. Тема закрыта.

Sovik 13.01.2010 11:26

Ага. Сам так же обходил эту же проблему.

iSeeYou 26.06.2010 22:40

тоже проблема с сигнатурой на МоемМире, может подскажите что ему не нравится?

Код AS3:

var vid = "3133266161028176000";
var session_key = "4a91b36ee87b6fe216f1c98894a35ee1";
var key = "b0c9e09833d748bddd43903b49b462d5";

Запрос:
Код:

method=friends.get&app_id=504591&session_key=4a91b36ee87b6fe216f1c98894a35ee1&sig=4edc81b0a8265f901017a5a4dc021d8d
sig:
Код:

3133266161028176000app_id=504591method=friends.getsession_key=4a91b36ee87b6fe216f1c98894a35ee1b0c9e09833d748bddd43903b49b462d5
Ответ:
PHP код:

{"error":{"error_msg":"Incorrect signature","error_code":104}} 

Вроде бы и ничего в Сигнатуре не упустил...


Часовой пояс GMT +4, время: 19:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.