Форум Flasher.ru

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

vasya87 12.01.2010 00:47

У меня тоже не получается правильно вычислить сигнатуру, я новичок в апи вконтакта. Для метода getProfiles вычисляю так:
Код AS1/AS2:

var sig=MD5.hash("мой_айдиapi_id=ади_приложенияmethod=getProfilesv=2.0секрет");
var request:URLRequest = new URLRequest("http://api.vkontakte.ru/api.php?api_id=айди_приложения&v=2.0&method=getProfiles&uids=мой_айди&sig="+sig);
var loader:URLLoader = new URLLoader();
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
//и так далее

в результате получаю что-то такое:
Код:

<?xml version="1.0" encoding="utf-8"?>
<error>
 <error_code>4</error_code>
 <error_msg>Incorrect signature</error_msg>
 <request_params list="true">
  <param>
  <key>api_id</key>
  <value>айди_приложения</value>
  </param>
  <param>
  <key>v</key>
  <value>2.0</value>
  </param>
  <param>
  <key>method</key>
  <value>getProfiles</value>
  </param>
  <param>
  <key>uids</key>
  <value>мой_айди</value>
  </param>
  <param>
  <key>sig</key>
  <value>5a3cf0ab0ee7b70ce56eeadaf9b89645</value>
  </param>
 </request_params>
</error>

секрет беру со страницы редактирования, а не платежей.
если поменять api.vkontakte.ru/api.php на api.vk.com/api.php, то вообще выдаёт ошибку 5 (ошибка авторизации).
вроде всё по их документации. что я делаю неправильно?:(

udaaff 12.01.2010 03:22

Читайте про то, как правильно подпись формировать http://vkontakte.ru/pages.php?o=-1&p...FF%20%F1%20API

vasya87 12.01.2010 11:56

Так дело в том, что я отсюда же и брал. viewer_id и api_id получаю из flashVars (проверял, получаются какие надо). Далее размещаю всё в порядке, как там написано
Код AS3:

var met:String="getProfiles";
var skey:String="ключ";
var sig=MD5.hash(viewerID+'api_id='+apiID+'method='+met+'v=2.0'+skey);

результат тот же..
(при этом, я так понял, при формировании запроса порядок переменных кроме апи_айди и сиг не важен? запрос такой:
"http://api.vkontakte.ru/api.php?api_id="+aipID+"&v=2.0&method="+met+"&uids="+viewerID+"&sig="+sig)

udaaff 12.01.2010 12:34

В запросе конечно же не важен.
Цитата:

Далее размещаю всё в порядке, как там написано
Не всё. uids'a нету в подписи.

vasya87 12.01.2010 20:44

Да, помогло. Потом до меня даже безболезненно дошло, что если добавляю fields в запрос, то нужно его добавить и в подпись. За что Вам большое спасибо:)

YaMaha 13.05.2010 03:59

а мне не помогло.. уже все документацию до дыр протерла, но никак не выходит получить getUserInfoEx.
:( не понимаю что не так делаю( вроде все по правилам.
посылаю запрос в адресной строке браузера и в ответ вместо желаемого XML выводится сообщение об ошибке с неправильной сигнатурой.
<error_msg>Incorrect signature</error_msg>

а может дело в том, что обязательно нужно запрашивать методы из самого приложения? :wacko: подскажите пожалуйста!

пс-моя ссылка для получения getUserInfoEx :umnik2:
Код:

"http://api.vkontakte.ru/api.php?api_id="+id приложения+"&v=2.0&method=getUserInfoEx&sig="+MD5[мой id+"api_id="+id приложения+"method=getUserInfoExv=2.0secret"]

HotIceCream 13.05.2010 07:24

Yamaha , раз говорит о неправильной сигнатеру, то покажите как вы ее формируете.

YaMaha 13.05.2010 12:30

формирую сигнатуру с помощью этого сайта http://www.kontrolnaya-rabota.ru/s/o...lculators/md5/ там онлайн md5 генератор
записываю такую строку:
МОЙАЙДИВКОНТАКТЕapi_id=АЙДИМОЕГОПРИЛОЖЕНИЯmethod=getUserInfoExv=2.0secret
с виду же правильно.. :o так как в навконтактовой документации написано:

Код:

sig = md5(viewer_idname1=value1name2=value2secret)

В данном случае sig равен md5("6492api_id=4method=getFriendsv=2.0secret")
то есть b499ce268e9995a08b2f2aebff2488be
(из вконтакта)

:wacko:

Neborya 13.05.2010 16:13

Цитата:

Параметр sig равен md5 от конкатенации следующих строк:
* пар "parameter_name=parameter_value", расположенных в порядке возрастания имени параметра (по алфавиту).
Вот на этот пункт ты не обратил внимания.

Нет, всё правильно.

YaMaha 13.05.2010 16:58

Цитата:

Сообщение от Neborya (Сообщение 907980)
Вот на этот пункт ты не обратил внимания.

но у меня все по алфавиту же..

1.МОЙАЙДИВКОНТАКТЕ
2.api_id=АЙДИМОЕГОПРИЛОЖЕНИЯ
3.method=getUserInfoEx
4.v=2.0
5.secret

попробовала сделать запрос из примера вконтакта, с целью получить getFriends. то же самое :(
http://api.vkontakte.ru/api.php?api_id=АЙДИАПИ&method=getFriends&v=2.0&sig=7df24b447d350b7377920a9ce3b74bcf

где 7df24b447d350b7377920a9ce3b74bcf== md5(МОЙАЙДИapi_id=АЙДИАПИmethod=getFriendsv=2.0secret)
может приложение нужно как то особо настраивать?
ПС-оно у меня в настройках "включено и доступно всем", повторюсь ссылку вписываю в адресную строку браузера, не из моего флеш-приложения

Добавлено через 7 часов 50 минут
Цитата:

Сообщение от Neborya (Сообщение 907980)
Вот на этот пункт ты не обратил внимания.

Нет, всё правильно.

:wacko: так в чем же дело..
вечно у меня ничего не работает.. :(


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

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