mihdan
@mihdan
WordPress-евангелист, ведущий РНР - разработчик

Получение списка друзей из Одноклассников

Из доков по АПИ ( apiok.ru/wiki/display/api/FAPI.init+ru ) видно, что сначала надо проинициализировать сам АПИ. Но тут сразу же возникает затык: rParams пустой. Что я делаю не так?

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="//api.odnoklassniki.ru/js/fapi5.js"></script>
    <script>
        var rParams = FAPI.Util.getRequestParameters(); console.log(rParams);
        FAPI.init(rParams["api_server"], rParams["apiconnection"],
                function() { console.log('ok')},
                function( error ) {  console.log(error); }
        );
    </script>
</head>
<body>

</body>
</html>
  • Вопрос задан
  • 4703 просмотра
Пригласить эксперта
Ответы на вопрос 4
vozhiganov
@vozhiganov
OK API Team
fapi5.js предназначен для игр, которые будут открыты на самих Одноклассниках (вот такие), поэтому если делается просто внешнее приложение/сайт, то для него эта библиотека не подходит.
Ответ написан
Комментировать
Eugene_Sh
@Eugene_Sh
Попробуй заменить строчку:
<script type="text/javascript" src="//api.odnoklassniki.ru/js/fapi5.js"></script>

На:
<script type="text/javascript" src="http://api.odnoklassniki.ru/js/fapi5.js" defer="defer"></script>
Ответ написан
mihdan
@mihdan Автор вопроса
WordPress-евангелист, ведущий РНР - разработчик
Вариантов нет?
Ответ написан
Комментировать
@96467840
в общем дело все в том что в GET параметрах должны присутствовать все параметры приложения apiok.ru/wiki/pages/viewpage.action?pageId=42476523 (и все внутренние переходы-ссылки во фрейме должны их содержать)

вот код функции FAPI.Util.getRequestParameters()
getRequestParameters: function() {
            var l = new Array();
            var g = window.location.search;
            console.log(window.location.href);
            if (g) {
                g = g.substr(1);
                var k = g.split("&");
                for (var h = 0; h < k.length; h++) {
                    var e = k[h].split("=");
                    var f = e[0];
                    var m = e[1];
                    m = decodeURIComponent(m.replace(/\+/g, " "));
                    l[f] = m;
                }
            }
            return l;
        }


в документации выделено:
API должно быть проинициализировано перед первым использованием при помощи метода FAPI.init.

Все параметры, переданные вашему приложению при запуске, рекомендуется копировать в неизменном виде во все навигационные линки внутри айфрейма вашего приложения. По меньшей мере во всех навигационных ссылках должны присутствовать следующие параметры:
•api_server
•apiconnection
•web_server
•application_key
•session_key
•session_secret_key

После каждого перехода нужно повторно производить инициализацию методом FAPI.init.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект