0

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"}]}}

実行可能にする方法は?そのようなエラーに直面した人はいますか?? ありがとう。

4

1 に答える 1

1

これは ActionScript に関する質問ではなく、vkontakte に関する質問です。エラー メッセージに基づいて、署名を確認し、vkontakte が期待するとおりにビルドされていることを確認する必要があることは明らかです。

この場合、MD5 ハッシュを実行する前に、まずクエリ パラメータをアルファベット順に並べ替える必要があると思います。

また、すべてのクエリ パラメータが、区切り記号なしで次々に追加されているようです。vkontakte についてはわかりませんが、他の API では通常、パラメーターをハッシュする前に「&」で区切る必要があります。

于 2012-04-12T09:56:09.073 に答える