Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   facebook api начало работы (http://www.flasher.ru/forum/showthread.php?t=205035)

areostar 16.11.2013 13:50

facebook api начало работы
 
Обьясните пожалуйста всё ли можно писать в flash или надо обязательно JS приплетатью смотрю примеры в сети но никак разобраться не могу. мне надо просто фотографию пользователя вытенуть. поиллюстрируйте плиз если не сложно!

caseyryan 16.11.2013 16:44

Надо JS приплетать. Вообще, можно и на флеше, но это сделать сложнее, чем изучить JS на необходимом уровне
Вот простейший html код вставки для iframe.
Главное не забудьте положить в одну папку с этим html файл expressInstall.swf и папку js содержащую файл swfobject.js

ну и можете в m_preloaderPath указать ссылку на свою флешку. В общем, думаю особого труда не составит разобраться что к чему.
Данные из фейсбука передадутся при загрузке приложения, и будут доступны через stage.loaderInfo.parameters. В частности ссылка на фотку будет тут:
stage.loaderInfo.parameters['picture'];
удачи!
Код AS3:

 
 
<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 + "somepreloader.swf";
                var m_movieName                = m_pref + "someflash.swf";
                                var m_swfID                                = "FlashSWF";
                                var m_swf                                = null;
 
                                var fbAppID                                = ""; // facebook api id
                var m_token                        = "";
                                var m_server                        = m_pref + "example.com/";
                                var fbChannelURL                = m_server + "fb/channel.html";
                var m_friendsList                = "[ ";
                                var m_httpVars                        = window.location.search.substring(1).split("&");
                                var m_urlvars                                = {};
                                // 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;
                                }
 
                                // this means the social is vk or odnoklassniki
 
                                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['main'] = m_movieName + "?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>


areostar 24.11.2013 23:42

поясните плиз

Код AS3:

  var m_preloaderPath         = m_pref + "somepreloader.swf";//Прелоадер? а если его нет?
  var m_movieName        = m_pref + "someflash.swf";//ИМя основной флешки
  var m_swfID                = "FlashSWF"; //Что такое?
  var m_swf                = null; //Что такое?
 
  var fbAppID                = ""; // facebook api id
  var m_token                = "";//Что такое?
  var m_server                = m_pref + "example.com/";//Что такое?
  var fbChannelURL                = m_server + "fb/channel.html";//Что такое?


caseyryan 25.11.2013 08:50

Цитата:

//Прелоадер? а если его нет?
Ну, расчет был на то, что все-таки код будет просматриваться, там все довольно просто, ничего нигде не обфусцировано и какие параметры куда передаются видно.
Если нет прелодера, то указываем туда путь к своей флешке, при этом можно не указывать m_movieName.
У меня этот параметр используется для передачи через флешварс прелодеру, чтобы он знал откуда грузить основную флешку. А в страницу встраивается именно та флешка, которая указана в m_preloaderPath.

Цитата:

var m_swfID = "FlashSWF"; //Что такое?
1) swf id. Это айди флешки, для передачи в SWFObject
Цитата:

var m_server = m_pref + "example.com/";//Что такое?
2) Корневая директория сервера, на котором все это дело лежит. Чтобы флешка знала куда делать запросы.
Цитата:

var fbChannelURL = m_server + "fb/channel.html";//Что такое?
3) Читаем документацию
Цитата:

var m_token = "";//Что такое?
4) Токен от фейсбука. См. п. 3

Цитата:

var m_swf = null; //Что такое?
5) ссылка на div в который встроена флешка. Изначально нужен для того, чтобы организовать мост JS / AS3 через ExternalInterface. Но в этом коде такие функции отсутствуют, потому что руки не дошли доделать)

areostar 25.11.2013 09:30

Спасибо, вроде понятно, сейчас попробую


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

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