Flash vkontakte调用api方法失败

Flash vkontakte调用api方法失败,flash,vk,Flash,Vk,我尝试调用VK方法,但失败,错误为: private function deletePost(postId:String):int { var sigStr:String = FlashVarsVO.user_id + "api_id="+FlashVarsVO.app_id+"method=wall.deletev=3.09bdnOW93DM3Oy5lcSHr4"; var sig:String = MD5.hash("sigSt

我尝试调用VK方法,但失败,错误为:

private function deletePost(postId:String):int
        {
            var sigStr:String = FlashVarsVO.user_id + "api_id="+FlashVarsVO.app_id+"method=wall.deletev=3.09bdnOW93DM3Oy5lcSHr4";
            var sig:String = MD5.hash("sigStr");
            var str:String = "http://api.vk.com/api.php?api_id="+FlashVarsVO.app_id+"&method=wall.delete&v=3.0&format=JSON&post_id="+postId+ "&sid="+ FlashVarsVO.access_token +"&sig=" +sig;
            trace(str);

        //  sig = md5(viewer_idname1=value1name2=value2secret)

            var req:URLRequest = new URLRequest(str);
            var uLdr:URLLoader = new URLLoader(req);
            uLdr.addEventListener(Event.COMPLETE, onComplete);
            uLdr.addEventListener(ErrorEvent.ERROR, onErrorHandler);
            uLdr.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

            return 0;
        }

http://api.vk.com/api.php?api_id=1111111&method=wall.delete&v=3.0&format=JSON&post_id=1629&sid=bf472ebcf2eba19cbdb56d86a8bd477603bbd76bd6c5356e4d003815c7cf3a4&sig=62b1265890d247efdd939f616cad1e8d
对于此请求,vk.com向我发送以下响应:

{"error":{"error_code":4,"error_msg":"Incorrect signature: Session can be expired, revoked by user or connected with different IP address","request_params":[{"key":"api_id","value":"1111111"},{"key":"method","value":"wall.delete"},{"key":"v","value":"3.0"},{"key":"format","value":"JSON"},{"key":"post_id","value":"1629"},{"key":"sid","value":"bf472ebcf2eba19cbdb56d86a8bd477603bbd76bd6c5356e4d003815c7cf3a4"},{"key":"sig","value":"62b1265890d247efdd939f616cad1e8d"}]}}

如何使其可行?有人面临这样的错误吗??谢谢。

这不是一个动作脚本问题,而是一个vkontakte问题。根据错误消息,您显然需要检查签名,并确保它完全按照vkontakte的预期构建

在本例中,我的猜测是,在执行MD5哈希之前,首先需要按字母顺序对查询参数进行排序


此外,似乎所有查询参数都是一个接一个地追加的,它们之间没有分隔符。我不知道vkontakte的情况,但其他API通常希望参数在散列之前以“&”分隔。

我在vkontakte文档中读到了这一点,但看起来我做得很好,但仍然有问题。注意散列的内容:
var sig:String=MD5.hash(“sigStr”)
而不是
var-sig:String=MD5.hash(sigStr)