Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.12.2009, 17:16
Furinax вне форума Посмотреть профиль Отправить личное сообщение для Furinax Найти все сообщения от Furinax
  № 1  
Ответить с цитированием
Furinax
[+1 02.09.15]

Регистрация: Mar 2009
Адрес: Moscow
Сообщений: 469
По умолчанию Не могу понять почему sig высчитывается неправильно

сам ошибку найти не могу. Класс MD5 взят с Adobe, так что на него тоже жаловаться не могу. Почему всегда приходит xml с ошибкой, что sig неправильный? Помогите пожалуйсто понять что я делаю не так.
Самый прикол, что с таким запросом у меня метод isAppUser работает, правда вдобавок к ответу еще и высылает xml с описанием ошибки. А с методом getProfiles ни в какую...
Вот мой код:
Код AS3:
private function getUserDataFromAPI():void {
			var requestToVKAPI:URLRequest = new URLRequest("http://api.vk.com/api.php");
			var loader1:URLLoader = new URLLoader();
			var variablesToSend:URLVariables = new URLVariables();
 
			var viewerID:String = root.loaderInfo.parameters.viewer_id;
			var apiID:String = "1763106";
			var secretKey:String = "мой секретный код";
 
			var methodFromAPI:String = "getProfiles";
 
			var testMode:String = "1";
 
			variablesToSend.method = methodFromAPI;
			variablesToSend.api_id = apiID;
			variablesToSend.v = "2.0";
			variablesToSend.test_mode = testMode;
			variablesToSend.uids = viewerID;
			variablesToSend.sig = MD5.hash(viewerID + 'api_id=' + apiID + 'method=' + methodFromAPI + 'test_mode=' + testMode + 'v=2.0' + secretKey);
 
			requestToVKAPI.data = variablesToSend;
			requestToVKAPI.method = URLRequestMethod.POST;
 
			loader1.load(requestToVKAPI);
			loader1.addEventListener(Event.COMPLETE, onGetUserDataFromAPI);
		};
Вот пример ответа:
Код:
<?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>v</key>
   <value>2.0</value>
  </param>
  <param>
   <key>test_mode</key>
   <value>1</value>
  </param>
  <param>
   <key>uids</key>
   <value>null</value>
  </param>
  <param>
   <key>method</key>
   <value>getProfiles</value>
  </param>
  <param>
   <key>api_id</key>
   <value>1763106</value>
  </param>
  <param>
   <key>sig</key>
   <value>7e0ea8995284c70adfe25fe514a4640f</value>
  </param>
 </request_params>
</error>

Старый 27.12.2009, 20:26
HotIceCream вне форума Посмотреть профиль Отправить личное сообщение для HotIceCream Найти все сообщения от HotIceCream
  № 2  
Ответить с цитированием
HotIceCream
 
Аватар для HotIceCream

Регистрация: Oct 2009
Сообщений: 112
Записей в блоге: 1
uids тоже вроде нужно засовывать в sig

Старый 27.12.2009, 20:34
Furinax вне форума Посмотреть профиль Отправить личное сообщение для Furinax Найти все сообщения от Furinax
  № 3  
Ответить с цитированием
Furinax
[+1 02.09.15]

Регистрация: Mar 2009
Адрес: Moscow
Сообщений: 469
Т.е. тогда получается, что при вызове каждого метода высчитывается разный sig так как каждый метод требует разные параметры?
Я правильно понял, что если я вызываю один и тот же метод, но с разным количеством параметров, то мне надо каждый раз и сиг по другому высчитывать?

Старый 27.12.2009, 21:07
Anton Riot вне форума Посмотреть профиль Отправить личное сообщение для Anton Riot Посетить домашнюю страницу Anton Riot Найти все сообщения от Anton Riot
  № 4  
Ответить с цитированием
Anton Riot

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 291
Отправить сообщение для Anton Riot с помощью ICQ
ясен пень, сигнатура при каждом запросе разная! Она на то и хэш-функция.

Старый 27.12.2009, 23:31
HotIceCream вне форума Посмотреть профиль Отправить личное сообщение для HotIceCream Найти все сообщения от HotIceCream
  № 5  
Ответить с цитированием
HotIceCream
 
Аватар для HotIceCream

Регистрация: Oct 2009
Сообщений: 112
Записей в блоге: 1
в сигнатуру нужно засовывать все параметры которые вы передаете + секрет и viewer_id. Параметры нужно сортировать по алфавиту

Старый 28.12.2009, 02:57
chabapok вне форума Посмотреть профиль Отправить личное сообщение для chabapok Найти все сообщения от chabapok
  № 6  
Ответить с цитированием
chabapok

Регистрация: Jul 2009
Сообщений: 240
Записей в блоге: 1
Цитата:
<key>uids</key>
<value>null</value>
вот тут тоже не правильно.

возьмите класс DataProvider из чата или игрухи-примера и не морочьте себе голову.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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