Форум Flasher.ru

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

caseyryan 29.09.2013 09:25

Готов поспорить, что дело в том, что flashVars не передаются. Сначала надо сделать айфрейм таким образом, чтобы туда передавались флешварсы с одноклассников
У меня вот такой айфрейм
Код:


<html>

<head>
    <script
    src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
        <script src="js/swfobject.js"></script>
            <link rel="stylesheet" href="style.css" />
            <title></title>
            <meta name="description" content="" />
            <script>
                var m_pref = "http://";
                if (window.location.protocol == "https:") {
                    m_pref = "https://";
                }
                var m_preloaderPath        = m_pref + "app.vk.com/c6092/u*******/740d786e650df3.swf";
                var m_movieName                = m_pref + "";
                                var m_swfID                                = "FlashSWF";
                                var m_swf                                = null;
                                var fbChannelURL                = m_pref + "mysite.com/fb/channel.html";
                                var fbAppID                                = "191105307723956";
                var m_token                        = "";
                                var m_server                        = m_pref + "mysite.com/";
                                var m_asset_server                = m_pref + "mysite.com/";
                var m_friendsList                = "[ ";
                                var m_httpVars                        = window.location.search.substring(1).split("&");
                                var m_urlvars                        = {};
                                var m_port                                = 9110;
                                // for vk and ok
                                for (var i in m_httpVars) {
                                        var s                = String(m_httpVars[i]).split("=");
                                        var key        = String(s[0]);
                                        var value        = String(s[1]);
                                        m_urlvars[key] = value;
                                }
                               
                                // for vk or ok
                               
                                if (m_urlvars['viewer_id'] || m_urlvars['logged_user_id']) {
                                        initIframe(m_urlvars);
                                } else {
                                       
                                        $(document).ready(function () {

                                                $.ajaxSetup({
                                                        cache: true
                                                });
                                                $.getScript('//connect.facebook.net/en_UK/all.js', function () {
                                                       
                                                        FB.init({
                                                                appId: fbAppID,
                                                                channelUrl: fbChannelURL
                                                        });
                                                        FB.getLoginStatus(function (response) {
                                                               
                                                                if (response.status === 'connected') {
                                                                       
                                                                        m_token = response.authResponse.accessToken;
                                                                        connected = true;
                                                                        var user = null;
                                                                        FB.api('/me?fields=picture,first_name,last_name', function (userParams) {
                                                                                user = userParams;
                                                                                FB.api('/me/friends?access_token=' + m_token + '&fields=installed,first_name,last_name,picture', function (friends) {
                                                                                        for (var i in friends.data) {

                                                                                                var firstName = friends.data[i].first_name;
                                                                                                var lastName = friends.data[i].last_name;
                                                                                                var picture = friends.data[i].picture.data.url;
                                                                                                var userID = friends.data[i].id;
                                                                                                m_friendsList += JSON.stringify({
                                                                                                        'firstName': firstName,
                                                                                                        'lastName': lastName,
                                                                                                        'picture': picture,
                                                                                                        'userID': userID
                                                                                                }) + ",";

                                                                                        }

                                                                                        m_friendsList += " ]";
                                                                                        //document.body.innerHTML = m_friendsList;
                                                                                                                                                       
                                                                                        if (user != null) {
                                                                                                initIframe({
                                                                                                        "fb_user_id": user.id,
                                                                                                        "first_name": user.first_name,
                                                                                                        "last_name": user.last_name,
                                                                                                        "token": token,
                                                                                                        "picture": user.picture.data.url,
                                                                                                        "friends": m_friendsList
                                                                                                });
                                                                                        }

                                                                                });
                                                                        });

                                                                }
                                                        })

                                                });
                                        });
                                } // end else

                function initIframe(m_vars) {
                    var rand = String(Math.floor(Math.random() * 100000));
                    var m_flashvars = {};
                    var str = "";
                    for (var i in m_vars) {
                        var key = i;
                        var value = m_vars[i];
                        m_flashvars[key] = value;
                        str += key + "=" + value + "&";
                    }
                   
                    m_flashvars['server']                        = m_server;
                    m_flashvars['asset_server']        = m_asset_server;
                    m_flashvars['port']                        = m_port;
                    m_flashvars['main']                        = m_movieName + "?q=odnoklassniki&rand=" + rand;
                    var params = {
                        menu: "false",
                        scale: "noScale",
                        allowFullscreen: "true",
                        allowFullscreenInteractive: "true",
                        allowScriptAccess: "always",
                        bgcolor: "",
                        wmode: "direct"
                    };
                    var attributes = {
                        id: m_swfID
                    };
                    swfobject.embedSWF(
                        m_preloaderPath + "?rand=" + rand,
                        "altContent", "100%", "100%", "10.0.0",
                        "expressInstall.swf",
                        m_flashvars, params, attributes);
                        m_swf = document.getElementById(m_swfID);       
                }
            </script>
            <style>
                html, body {
                    height:100%;
                    overflow:hidden;
                }
                body {
                    margin:0;
                }
            </style>
</head>

<body>
    <div
    id="altContent">

        </div>
</body>

</html>


mikhailk 29.09.2013 12:47

А зачем тестировать ОК локально?
Не то, что бы я лично был против, просто обычно к ОК подключается уже работающее приложение. Достаточно убедиться, что приложение правильно получает данные от ОК. Остальное отлаживать как бы смысла большого нет.

Если есть необходимость контролировать состояние переменных при подключении к ОК, а собственной консоли в клиенте не предусмотрено, то достаточно просто интегрировать в клиента Monster Debugger (http://www.monsterdebugger.com/). Занятная и полезная штука.

caseyryan 30.09.2013 08:10

Цитата:

Остальное отлаживать как бы смысла большого нет.
Плюсую. Совершенно бессмысленное занятие. Можно получить один раз ответ от одноклассников, вставить нужные данные в какое-то свойство, и настроить все необходимое в приложении уже используя эти данные

Akopalipsis 01.10.2013 18:59

mikhailk скажите пожалуйста, что такое консоль?
Предположив что ОК это что то серверное и "это" нужно тестировать в консоли, то на ум приходит консоль webstorm-а.. Ваша консоль, это то о чем сказал я? И ещё, такая консоль есть в FlashDevelop?

caseyryan 01.10.2013 19:06

зачем такие заморочки? ПОд консолью тут имеется в виду обычное текстовое поле поверх всего, в которое будут выводиться все данные вместо трейса
А монстер дебаггер вообще является отдельным приложением на AIR, которое будет отслеживать состояние вашей программы

mikhailk 02.10.2013 01:19

Цитата:

ПОд консолью тут имеется в виду обычное текстовое поле поверх всего, в которое будут выводиться все данные вместо трейса
Да. С маленькой кнопкой, чтобы вытаскивать на экран и снова убирать за край экрана.
Я лично по дефолту встраиваю во все приложения, которые сам пишу. Естественно, она доступна исключительно в тестмоде и для фиксированного перечня пользователей в реалмоде.


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

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