Incorrect signature

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
yuray
Сообщения: 4
Зарегистрирован: 15 июл 2010, 12:35

Incorrect signature

Сообщение yuray »

Всем доброго дня.

Уже не первый год замужем, но как ни странно не могу получить удовлетворительный ответ от апи пользуясь текущей документацией и поиском ответов на форумах.

История в 2-х словах:

На данный момент в документации не указано где найти api_secret.

Путем нехитрых вычислений по формуле auth_key = md5(api_id + '_' + viewer_id + '_' + api_secret), взятой здесь http://vkontakte.ru/page2369267, выяснил что api_secret соответствует опции "Защищенный ключ" в настройках приложения. Интересен тот факт, что изменение этой опции НИКАК не влияет на приходящий от ВКонтакте auth_key (все же поменял ключ на первоначальный, мало ли что :D )

Далее вроде все должно быть просто, выполняю простецкий запрос приведенный как пример в документации тут http://vkontakte.ru/pages.php?o=-1&p=%C ... 0%F1%20API :

http://api.vkontakte.ru/api.php?api_id= ... ebff2488be
подставляю свои значения для api_id, далее формирую sig:

* viewer_id – id текущего пользователя, переданный SWF посредством flashvars при инициализации.
* пар "parameter_name=parameter_value", расположенных в порядке возрастания имени параметра (по алфавиту).
* секрета приложения api_secret (секрет Вы можете менять при редактировании страницы приложения).

sig = md5(viewer_idname1=value1name2=value2secret)

т.е. md5(88****98api_id=18***12method=getFriendsv=2.0api_secret)

В ответе собственно сабж.

Кто-нибудь сталкивался? Может быть конечно я в трех соснах запутался, но очень долго все перепроверял и искал решение прежде чем сюда написать.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Incorrect signature

Сообщение bodnar »

yuray писал(а):Путем нехитрых вычислений
Сомнительные вычисления))
yuray писал(а): Интересен тот факт, что изменение этой опции НИКАК не влияет на приходящий от ВКонтакте auth_key (все же поменял ключ на первоначальный, мало ли что :D )
А Вас этот факт не насторожил?
yuray писал(а):выяснил что api_secret соответствует опции "Защищенный ключ" в настройках приложения.
api_secret это "Ключ приложения", а не "защищенный ключ"
yuray
Сообщения: 4
Зарегистрирован: 15 июл 2010, 12:35

Re: Incorrect signature

Сообщение yuray »

bodnar писал(а):
yuray писал(а):Путем нехитрых вычислений
Сомнительные вычисления))
yuray писал(а): Интересен тот факт, что изменение этой опции НИКАК не влияет на приходящий от ВКонтакте auth_key (все же поменял ключ на первоначальный, мало ли что :D )
А Вас этот факт не насторожил?
yuray писал(а):выяснил что api_secret соответствует опции "Защищенный ключ" в настройках приложения.
api_secret это "Ключ приложения", а не "защищенный ключ"
Скажите пожалуйста, что сомнительного в моих вычислениях?

Предложенный Вами вариант я неоднократно пробовал, с той лишь разницей, что не совпадают auth_key.

Сомнения вызвало многое, в особенности то, что разработчики столь посещаемого ресурса не обновляют документацию. Иначе зачем мне занимать Ваше драгоценное время.

Спасибо.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Incorrect signature

Сообщение bodnar »

Сомнительного того, что ответ не верный, api_secret это не "Защищенный ключ"
код в студию
yuray
Сообщения: 4
Зарегистрирован: 15 июл 2010, 12:35

Re: Incorrect signature

Сообщение yuray »

$api_secret = '*********';
print_r($_GET);
echo md5($_GET['api_id'].'_'.$_GET['viewer_id'].'_'.$api_secret);


подставляю "Ключ приложения" - auth_key не сходится, подставляю "Защищенный ключ" - сходится.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Incorrect signature

Сообщение bodnar »

Так, давайте отделим мух от котлет. Этим способом вы проверяете на своем сайте аутентификцию пользователя в контакте, чтобы не делать дополнительных проверок.
А вопрос был про неверную сигнатуру при запросе к api из приложения.

Так вот при проверке аутентификации нужно использовать защищенный ключ, потому что его невозможно узнать злоумышленнику.
А при выполнении запроса нужен ключ приложения. И я просил код того места вашего приложения, что вызывает ошибку сигнатуры, а не какой-либо еще.
yuray
Сообщения: 4
Зарегистрирован: 15 июл 2010, 12:35

Re: Incorrect signature

Сообщение yuray »

Теперь у меня все стало на свои места. Ввело в заблуждение что под api_secret имеются в виду разные вещи. Благодарю.
vitovt
Сообщения: 6
Зарегистрирован: 23 июл 2010, 17:08

Re: Incorrect signature

Сообщение vitovt »

Возник такой же вопрос, как разобраться с этими подписями. Грубо говоря, есть ли алгоритм формирования подписи и get параметров передаваемых на скрипт api.php там же есть какое-то условия что все параметры должны идти в алфавитном порядке?

собственно говоря делаю все как в примере:

Код: Выделить всё

          $signature = "{$viewer_id}api_id={$app_id}method=getFriendsv=2.0{$secret}";                 $url = "http://api.vkontakte.ru/api.php?api_id={$app_id}&v=2.0&method=getFriends&sig=".md5($signature);
где у меня $secret - это "Ключ приложения" который я не могу редактировать.

собственно в любом случае выдается что Incorrect signature


хотя сформированный URL http://api.vkontakte.ru/api.php?api_id= ... 8717038055

открывает без проблем что надо?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Incorrect signature

Сообщение Александр »

vitovt
php? Из php вызываются secure методы.
Метод getFriend - не предназначен для этого.
vitovt
Сообщения: 6
Зарегистрирован: 23 июл 2010, 17:08

Re: Incorrect signature

Сообщение vitovt »

Александр писал(а):vitovt
php? Из php вызываются secure методы.
Метод getFriend - не предназначен для этого.
так, хорошо, а почему тогда открывая этот урл в браузере я получаю список друзей? или там смотриться моя авторизация вконтакте?
Ответить