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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.04.2011, 23:02
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 1  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Question Что не так с подписью запроса в моем коде?

Уже часа 4 пытаюсь подписать запрос, и все время получаю error 4: incorrect signature.
Я уже просто на грани нервного срыва. Беру даже официальный пример с контакта, заменяю в нем только timestamp, random, api_id и uid и все равно выдает такую же ошибку...

Вот мой код:
Код:
function retrieveBalance($viewerId, $apiId, $apiUrl) 
	{
		
		$random = rand(1000000, 10000000);
		$timestamp = time();
		$stringForSig =   "api_id=". $apiId 
					. "method=secure.getBalance"
					. "random=" . $random 
					. "timestamp=" . $timestamp 
					. "uid=" . $viewerId
					. "v=2.0" 
					. API_SECRET
					; 
		 
		$signature = md5($stringForSig);
		
		
		$request = $apiUrl 	. "?api_id=" . $apiId 
					. "&format=JSON"
					. "&method=secure.getBalance" 
					. "&random=" . $random 
					. "&sig=" . $signature
					. "&timestamp=" . $timestamp
					. "&uid=" . $viewerId 
					. "&v=2.0"
					;		
							
		$request_result = requestUrl($request);			
		return $request_result;
	}
Уже на сто раз проверил порядок расстановки парметров. Все по алфавиту.
Может я что-то упускаю?

п.с. Тестирую с $_GET[] запросами, чтобы видеть результат в браузере без участия флешки.

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Вот так у меня списание голосов происходит. Метод другой, но разницы нет:

PHP код:
$rand rand();
    
$timestamp time()+300;
    
$sig md5("api_id=".$api_id."method=secure.withdrawVotes""random=".$rand"timestamp=".$timestamp"uid=".$user_id"v=2.0""votes=".$votes."".$api_key);
    
$postvars="api_id=".$api_id."&method=secure.withdrawVotes"."&random=".$rand."&timestamp=".$timestamp."&uid=".$user_id."&v=2.0"."&votes=".$votes.""."&sig=".$sig
sig в конце - обрати внимание. И работает.

Старый 16.04.2011, 23:35
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
sig в конце - обрати внимание. И работает.
А какая разница где она располагается в самом запросе? Речь то идет о составлении подписи. Там все должно быть по алфавиту

Цитата:
Метод другой, но разницы нет:
Очевидно есть, потому что у меня код не работает. И меня интересует именно почему он не работает.
А примеров я уже видел кучу

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
А какая разница где она располагается в самом запросе?
Верно.

Добавлено через 1 минуту
Я уже давно все это делал, но раньше у меня getBalance работал.
Ты мой код проверял?

Старый 16.04.2011, 23:54
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Только подпись. Не работает.

Старый 17.04.2011, 12:12
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 6  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Проверьте настройку времени на своем сервере.

Старый 17.04.2011, 12:15
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 7  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Со временем все ок. Странно, что никто не заметил другого. В подпись запроса нужно вводить те же данные, что и в сам запрос (ну кроме самой подписи естественно). Т.е. если я указал format=JSON в запросе, то и в подпись надо это внести.
Два дня потратил, а собака-то была не глубоко зарыта.

Вот этот код нормально работает
Код:
$stringForSig = "api_id=" . API_ID 
						. "format=JSON"
						. "method=secure.getBalance" 
						. "random=" . $random 
						. "timestamp=" . $timestamp 
						. "uid=" . $viewerId 
						. "v=2.0" 
						. API_SECRET; 
		
		$sig = md5($stringForSig); 
		
		$request = 	$apiUrl 
					. "?api_id=" . API_ID 
					. "&format=JSON"
					. "&method=secure.getBalance" 
					. "&random=" . $random 
					. "&timestamp=" . $timestamp 
					. "&uid=5495786" 
					. "&v=2.0" 
					. "&sig=".$sig;

Старый 17.04.2011, 12:23
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
format отсутствует в списке параметров для создания подписи.

А, пока смотрел другие темы, ответ уже дан.

Старый 17.04.2011, 12:46
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 9  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
Странно, что никто не заметил другого.
Ну так тебе приводили рабочий код где нет format, а ты и не заметил

Старый 17.04.2011, 12:47
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 10  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Не надо присваиваить себе лавры ) Надо было сказать, что у меня нет формата в подписи тогда уж

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

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

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


 


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


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