ChromeUS |
02.08.2010 07:22 |
Incorrect Signature. Помогите новичку в VK API!
Здравствуйте!
В AS3 я не новичок, занимаюсь им довольно долго, но вот с VK API у меня возникла проблема.
(знаю что тема не раз обсуждалась, но пожалуйста, не пинайте. Способы в существующих темах не помогли)
Привожу исходник всего приложения:
Код AS3:
package {
import flash.display.Sprite;
import flash.text.*;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.*;
import vk.APIConnection;
import vk.events.*;
import vk.ui.VKButton;
import utils.MD5;
public class TestApp extends Sprite {
private var api_id:Number = app_key; // id приложения
private var api_secret:String="app_secret"; // секретный ключ
private var externalXML:XML;
private var loader:URLLoader = new URLLoader();
private var viewer_id:Number;
private var sig:String;
private var uid:String;
private var method:String = "getUserInfo";
private var test_mode:Number = 1;
private var v:String = "2.0";
public function TestApp() {
var params:Object=LoaderInfo(root.loaderInfo).parameters;
viewer_id = (params['viewer_id']) ? parseInt(params['viewer_id']) : 1;
//getProfile(viewer_id);
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e: Event = null): void {
//var strtosig:String = viewer_id+'api_id='+api_id+'fields=first_namemethod=getProfilesuids='+viewer_id+'v=2.0'+api_secret;
//sig=MD5.encrypt(strtosig);
//var request:URLRequest=new URLRequest("http://api.vkontakte.ru/api.php?api_id="+api_id+"&method=getProfiles&uids="+viewer_id+"&fields=first_name,last_name&v=2.0&sig="+sig);
sig=MD5.encrypt(viewer_id+'api_id='+api_id+'fields=bdate,photo_bigmethod=getProfilestest_mode=1uids='+uid+'v=2.0'+api_secret);
var request:URLRequest=new URLRequest("http://api.vkontakte.ru/api.php?api_id="+api_id+"&fields=bdate,photo_big&method=getProfiles&test_mode=0&uids="+uid+"&v=2.0&sig="+sig);
loader.load(request);
loader.addEventListener(Event.COMPLETE, init);
externalXML=new XML(loader.data);
var addApp: VKButton = new VKButton('Настройки приложения');
addApp.x = 472;
addApp.y = 8;
addChild(addApp);
var btn: VKButton = new VKButton('Посчитать');
btn.x = 284;
btn.y = 166;
var uname = externalXML..furst_name;
addChild(btn);
hello.text = "Здравствуйте, " + uname;
btn.addEventListener(MouseEvent.CLICK, function(e: Event):void{
MD1.text = MD5.encrypt(txt_Data.text);
});
addApp.addEventListener(MouseEvent.CLICK, function(e: Event):void{
VK.callMethod(showSettingsBox, 0);
});
}
}
}
Выдает некорректную сигнатуру...
В чем может быть проблема?
Мое мнение: тут ведь вроде нужен хеш, а не сумма? Насколько я себе представляю - это разные вещи...:o
НО! Попробовал так:
Код AS3:
package {
import flash.display.Sprite;
import flash.text.*;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.*;
import vk.APIConnection;
import vk.events.*;
import vk.ui.VKButton;
import com.adobe.crypto.MD5;
public class TestApp extends Sprite {
private var api_id:Number = app_id; // id вашего приложения
private var api_secret:String="app_secret"; // секретный ключ
private var externalXML:XML;
private var loader:URLLoader = new URLLoader();
private var viewer_id:Number;
private var sig:String;
private var uid:String;
private var method:String = "getUserInfo";
private var test_mode:Number = 1;
private var v:String = "2.0";
public function TestApp() {
var params:Object=LoaderInfo(root.loaderInfo).parameters;
viewer_id = (params['viewer_id']) ? parseInt(params['viewer_id']) : 1;
//getProfile(viewer_id);
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e: Event = null): void {
sig=MD5.hash(viewer_id+'api_id='+api_id+'fields=last_name, furst_namecids=1method=getProfilestest_mode=1uids='+uid+'v=2.0'+api_secret);
var request:URLRequest=new URLRequest("http://api.vkontakte.ru/api.php?api_id="+api_id+"&fields=last_name, furst_name&cids=1&method=getProfiles&test_mode=0&uids="+uid+"&v=2.0&sig="+sig);
loader.load(request);
loader.addEventListener(Event.COMPLETE, init);
externalXML=new XML(loader.data);
var addApp: VKButton = new VKButton('Настройки приложения');
addApp.x = 472;
addApp.y = 8;
addChild(addApp);
var btn: VKButton = new VKButton('Посчитать');
btn.x = 284;
btn.y = 166;
var uname = externalXML..furst_name;
addChild(btn);
hello.text = "Здравствуйте, " + uname;
btn.addEventListener(MouseEvent.CLICK, function(e: Event):void{
MD1.text = MD5.hash(txt_Data.text);
});
addApp.addEventListener(MouseEvent.CLICK, function(e: Event):void{
VK.callMethod(showSettingsBox, 0);
});
}
}
}
.......
Не помогло(((
Буду очень признателен за помощь :rolleyes:
|