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>
  • Вопрос задан
  • 4705 просмотров
Пригласить эксперта
Ответы на вопрос 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.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Market-place Ростов-на-Дону
от 100 000 до 200 000 ₽
24 июн. 2024, в 08:33
5000 руб./за проект
24 июн. 2024, в 00:32
300 руб./за проект
23 июн. 2024, в 23:51
10000 руб./за проект