Показать сообщение отдельно
Старый 23.12.2009, 02:16
Ralph_DiMarko вне форума Посмотреть профиль Отправить личное сообщение для Ralph_DiMarko Найти все сообщения от Ralph_DiMarko
  № 1  
Ответить с цитированием
Ralph_DiMarko
 
Аватар для Ralph_DiMarko

Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
По умолчанию secure запросы из удаленного сервера.

hi all )
Делаю небольшое приложение, дошел до момента операций с secure запросами, и у меня возникла как и у многих проблема с составлением правильного запроса, во флеше
Код AS1/AS2:
function getAppBalance(){
	var host = "http://www._.com.ua/vkontakte/getAppBalance.php";
	var lv:LoadVars = new LoadVars();
	var lv_in:LoadVars = new LoadVars();
	lv_in.onLoad = function() {
		delete this.onLoad;
		tLog.text = unescape(this);
	};
	lv.sendAndLoad(host,lv_in,"POST");
}
в файле getAppBalance.php
PHP код:
<?php
$api_id 
"0000";
$method "secure.getAppBalance";
$secret "код из платежей";
$version "2.0";
$url "http://api.vkontakte.ru/api.php?";
$timestamp time();
$random rand();
$sig md5("api_id=".$api_id."method=".$method."random=".$random."timestamp=".$timestamp."v=".$version.$secret);
ini_set('default_charset','UTF-8'); 
$content "api_id=".$api_id."&method=".$method."&random=".$random."&timestamp=".$timestamp."&v=".$version."&sig=".$sig;
$ch curl_init();
curl_setopt($chCURLOPT_URL,$url); // set url to post to
curl_setopt($chCURLOPT_FAILONERROR1);
curl_setopt($chCURLOPT_FOLLOWLOCATION0);// allow redirects
curl_setopt($chCURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($chCURLOPT_TIMEOUT3); // times out after 4s
curl_setopt($chCURLOPT_POST1); // set POST method
curl_setopt($chCURLOPT_POSTFIELDS$content); // add POST fields
$result curl_exec($ch); // run the whole process
echo $result;
curl_close($ch);
?>
Это был рабочий код, а вот нерабочий:
во флеше аналогично, а в пхп:
PHP код:
<?php
$api_id 
"0000";
$method "secure.withdrawVotes";
$secret "код из платежей";
$version "2.0";
$url "http://api.vkontakte.ru/api.php?";
$timestamp time();
$random rand();
$uid "номер юзера";
$votes "100";
$sig md5("api_id=".$api_id."method=".$method."random=".$random."timestamp=".$timestamp."v=".$version."votes=".$votes."uid=".$uid.$secret);
ini_set('default_charset','UTF-8'); 
$content "api_id=".$api_id."&method=".$method."&random=".$random."&timestamp=".$timestamp."&v=".$version."&votes=".$votes."&uid=".$uid."&sig=".$sig;
$ch curl_init();
curl_setopt($chCURLOPT_URL,$url); // set url to post to
curl_setopt($chCURLOPT_FAILONERROR1);
curl_setopt($chCURLOPT_FOLLOWLOCATION0);// allow redirects
curl_setopt($chCURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($chCURLOPT_TIMEOUT3); // times out after 4s
curl_setopt($chCURLOPT_POST1); // set POST method
curl_setopt($chCURLOPT_POSTFIELDS$content); // add POST fields
$result curl_exec($ch); // run the whole process
echo $result;
curl_close($ch);
?>
Как видно из последнего кода, добавил и всего то две переменные и использую другой метод - хочу списать один голос со счета юзера на счет приложения, и получаю в ответ 4 ошибку все время, почему этот метод и порядок составления запроса какой то странный, постоянно приходится фантазировать в зависимости от нужного запроса, при составлении некоторых запросов заметил, что даже если не учитывать порядок, и не писать переменные по алфавиту то все нормально проходит, помогите пожалуйста разобраться, буду весьма благодарен.
На форуме все темы по поводу контакта пересмотрел, но к сожалению не помогло.