Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   secure методы API вКонтакта (http://www.flasher.ru/forum/showthread.php?t=129974)

Bgg 14.09.2009 23:47

secure методы API вКонтакта
 
Пытаюсь получить платёжный балланс приложения. Пары в подписи запроса расставлены по алфавиту, в сиге нету амперсандов, обязательные параметры учтены. В чём может быть проблема? :umnik2:
PHP код:

<?php

$unixtime
=strtotime('now');
$random=rand(0,100000000);

$api_id="1456993";
$method="secure.getAppBalance";
$api_secret="qW5aC9rPw7";
$v="2.0";

$sig=md5("api_id=1456993method=secure.getAppBalancerandom=".$random."timestamp=".$unixtime."v=2.0".$api_secret);

$zaproz="http://api.vkontakte.ru/api.php?api_id=1456993&method=secure.getAppBalance&random=".$random."&timestamp=".$unixtime."&v=2.0"."&sig=".$sig;

$ppp=file_get_contents($zaproz);
echo 
$ppp;

?>

В итоге 4ая ошибка
" 4 Incorrect signature api_id 1456993 method secure.getAppBalance random 65902710 timestamp 1252954255 v 2.0 sig 03390f36ff53090e679b8f091a08a87b "

Mur4ik 15.09.2009 03:41

проверьте правильно ли указали ключ, должен быть не "Секретный ключ" приложения, а "Защищенный ключ" со вкладки "Платежи" (их еще включить нужно предварительно).

Bgg 15.09.2009 12:06

Mur4ik, спасибо, действительно ошибка была в ключе, всё прекрасно работает :)

dizz74 21.09.2009 18:25

пипл а есть примеры приложений secure методами?!

Точнее:
Допустим код.

PHP код:

<?php

$unixtime
=strtotime('now');
$random=rand(0,100000000);

$api_id="******";
$api_secret="********";
$v="2.0";
$method="secure.sendNotification";

//$uids=""
//$mes="Хм_вот_такая_вот_проблема";

//эти переменные допустим задаю через адресную строку, обращаясь к этому скрипту.
//как сделать чтобы постороние не могил вызвать этот запрос, зайдя на сайт  ну и запустим просто адрес!?


$sig=md5("api_id=".$api_id."message=".$mes."method=".$method."random=".$random."timestamp=".$unixtime."uids=".$uids."v=2.0".$api_secret);

$zaproz="http://api.vkontakte.ru/api.php?api_id=".$api_id."&message=".$mes."&method=".$method."&random=".$random."&timestamp=".$unixtime."&uids=".$uids."&v=2.0&sig=".$sig;
$ppp=file_get_contents($zaproz);
echo 
'Answer:'.$ppp;

И проблема №2: как поставить пробелы в message?

haha1 24.09.2009 04:04

PHP код:

<?php
/////////////////////////////////////
//      WaWeb Hak.lv 2009          //
/////////////////////////////////////
$vk_z['api_id'] = "";
$vk_z['v'] = "2.0";
$vk_c['api_secret'] = "";
$vk_z['random'] = rand(1000000,7777777); 
function 
req($vk_z){
global 
$vk_c;
ksort($vk_zSORT_STRING);
        foreach(
$vk_z as $k => $v){
            
$r .= $k."=".$v."&";
            
$m .= $k."=".$v;
        }
    
$m .= $vk_c['api_secret'];
    
$r substr($r0, -1)."&sig=".md5($m);
    return 
$r;
}

function 
curlvk($req){
        
$url "http://api.vkontakte.ru/api.php";  
        
$ch curl_init();  
        
curl_setopt($chCURLOPT_URL,$url);
        
curl_setopt($chCURLOPT_FAILONERROR1);  
        
curl_setopt($chCURLOPT_RETURNTRANSFER,1); 
        
curl_setopt($chCURLOPT_TIMEOUT3);
        
curl_setopt($chCURLOPT_POST1);
        
curl_setopt($chCURLOPT_POSTFIELDS$req);
        
$result curl_exec($ch);
        
curl_close($ch);   
    return 
$result;
}

function 
saveAppStatus($id$status){
global 
$vk_z;
    
$vk_z['uid'] = $id;
    
$vk_z['timestamp'] = strtotime('now');
    
$vk_z['timestamp'] = $vk_z['timestamp']+3500;
    
$vk_z['method'] = "secure.saveAppStatus";
    
$vk_z['status'] = iconv("Windows-1251""UTF-8"$status);
    
$vk_z['format'] = "JSON";
    
$req req($vk_z);
    return 
curlvk($req);
}
$status "Мой Адрес: hak.lv";
            echo 
saveAppStatus("50693460"$status);

?>


psu82 01.10.2009 00:04

Люди добрые, есть вопросы
1. Как всякие бяки вроде кавычек и слешей отправлять через secure.sendNotification? С ними получаю от сервера ошибку "Invalid signature".
2. Как получить данные о стране по коду ( getCountries ), В ответ приходять данные, но имена стран пустые ( коды посылаю 1,2,3 )
3. Посылаю http://api.vkontakte.ru/api.php?_=0....7411e23bc3b20b .Не работает локально. Проверяю в браузере ( ввожу урл вручную ). В ФФ все норм, в ИЕ - Invalid signature. Соответственно, из флеша локально не работает ( та же ошибка ), залил на вконтакте - работает в обеих браузерах.

Anton Riot 07.10.2009 18:16

1.использовать их html коды.
2.неправильно сериализуешь XML, или с кодировками что-то
3.это вопрос? Так и должно быть. Что удивительного.

Sovik 26.10.2009 01:54

Всем доброго времени суток :)

Раcскажите, плиз, как работать с secure методами?

Судя по примерам здесь, надо создать php файл на сервере и к нему обращаться?
Если есть примерчики, буду благодарен очень :)

Anton Riot 26.10.2009 21:36

в vkontakte.ru/club1 всё рассказано.

Sovik 27.10.2009 00:02

Привет всем!

Если из флеша делаю запрос secure.methods.getAppBalance, то ответ получаю.
Но вылив приложение на сайт приходит Unknown error occured

Как так? Разве не наоборот должно быть :)


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

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