Форум Flasher.ru

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

саша55555 14.12.2017 22:02

Обновление старого кода VK API
 
Помогите переделать код. Этот код взят из чата для VK API на AS3. Но там устаревший VK API, кто поможет подредактировать, чтобы все работало? В исходнике так же была папка vk, ее я заменил на новую из архива, скачанного с ВК "APIConnection".

Код AS3:

import flash.display.Sprite;
import flash.text.*;
import flash.events.*;
import vk.APIConnection;
import vk.events.*;
import vk.ui.VKButton;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
 
var api_id:Number;
var viewer_id:Number;
var sid:String;
var secret:String;
var time_n:Number=3;//через сколько секунд обновляем окно чата
var flashVars:Object = stage.loaderInfo.parameters as Object;
var VK:APIConnection = new APIConnection(flashVars);
// берем значения с флэш варс
api_id = flashVars['api_id'];//присваеваем апп ид
viewer_id = flashVars['viewer_id'];//виевир ид
sid = flashVars['sid'];//сид
secret = flashVars['secret'];//секрет
 
//обрабатывание полученых сообщении
function onMessages(data: Object):void{
var count = data.length;//сколько их всего
for (var i=0; i<count; i++){
window_chat.htmlText += '<b><font color="#ff0000">' + data[i]['user_name'] + "</font></b>: " + data[i]['message'];//добавляем строку с его именем и сообщением без ссылки и красного цвета
}
}
//если ошибка
function Errr(data: Object):void{
window_chat.text = data.error_msg;
}
//по нажатию на кнопку отправка сообщении
btn_chat.addEventListener(MouseEvent.CLICK, function(event:MouseEvent) {
VK.api('sendMessage', {message:send_chat.text}, onMessages, Errr);
send_chat.text='';//очищаем
})
//таимер ,который будет обновлять полученый сообщения
function ShortTimer() {
var minuteTimer:Timer = new Timer(1000,time_n);
minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
minuteTimer.start();
}
//таимер прозвенел
function onTimerComplete(evt:Event):void {
VK.api('getMessages', {}, onMessages, Errr);//гет месагес
ShortTimer()//вызываем таймер еще
}
////////////////
////////////////
////////////////вызываем нужные функции
VK.api('getMessages', {}, onMessages, Errr);
ShortTimer()


faraday 14.12.2017 22:20

APIConnection не работает из-за блокировки браузером флеш прослойки. Используйте js sdk и общайтесь с ней через externalInterface
Код AS3:

 
 function listenEvents(eventList){
                eventList.forEach(function(method){
                        VK.addCallback(method, function(){sendEvent(method,arguments);});
                });
        }
        function apiRequest(method, params, id){
                VK.api(method,params, function(result){
                        sendEvent('apiResult',{id:id, result:result});
                })
        }
function sendEvent(type,data){
        document.getElementById(divId).callback(type,data);
}


саша55555 14.12.2017 22:32

Извиняюсь, новичок в этом деле, куда ваш отрывок кода вставлять?
И кстати, где это взять
Код AS3:

viewer_id = flashVars['viewer_id'];//виевир ид
sid = flashVars['sid'];//сид


faraday 14.12.2017 23:27

здесь надо переписывать с пониманием дела, а не скопировать. читайте про ExternalInterface и vk jssdk

caseyryan 15.12.2017 05:54

Цитата:

APIConnection не работает из-за блокировки браузером флеш прослойки.
Что, простите? Какое отношение имеет APIConnection либа к так называемой флеш прослойке? Если флешка запускается в принципе, значит ничего не заблокировано.
А не работает у тебя потому, что ты используешь устаревшие методы API типа getMessages, sendMessage, которые уже лет как ... заменены на методы из этого пакета https://vk.com/dev/messages. Соответственно, скорее всего в этой APIConnection и версия API указана старая.
Цитата:

И кстати, где это взять
Например здесь:
Код AS3:

var flashVars:Object = stage.loaderInfo.parameters;

С вк довольно просто работать вообще без всяких APIConnection. Можно формировать запросы самому по вот этой схеме. Все запросы можно формировать прямо из флеш приложения, никакие JS SDK для этого не нужны.

саша55555 15.12.2017 14:46

То есть нужно просто методы все заменить новыми и поставить, новый APIConnection?

caseyryan 15.12.2017 15:55

Цитата:

и поставить, новый APIConnection?
Сомневаюсь, что кто-то обновляет эту библиотеку. Но попробовать можешь.
А на счет методов, да, их надо заменить, и версию API в запросах указать по-новее. Вот тут список версий


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

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