@Mega_User

Как исправить странную ошибку при инициализации api?

Есть приложение для одноклассников, стартовая страница которого (открывается во фрейме) страница с адресом вида site.ru/app/index.php. При его открытие происходит инициализация апи и обращение с помощью его к users.getCurrentUser. Всё работает нормально, апи возвращает корректные данные.

Но если пройти по ссылке расположенной в самом приложение (на тот же адрес страницы приложения) то появляется ошибка при инициализации апи Uncaught TypeError: Cannot read property 'indexOf' of undefined (fapi5.js:1)

подключаю и инициализирую апи так:
<script type="text/javascript" src="http://api.odnoklassniki.ru/js/fapi5.js"></script>

var rParams = FAPI.Util.getRequestParameters();
FAPI.init(rParams["api_server"], rParams["apiconnection"],  
    function() {
        console.log("ok");
    },   
    function(error){
        console.log("error");
    }
);


Подскажете как исправить данную ошибку
  • Вопрос задан
  • 2608 просмотров
Решения вопроса 1
chlp
@chlp
фулстек
Проблема в том, что FAPI.Util.getRequestParameters() возвращает пустой массив. Эта функция возвращает значения, основываясь на GET-параметрах адресной строки. Обратите внимание, что идет на странице site.ru/app/index.php после знака "?" (например, ?pageId=42476523). Все внутренние страницы в фрейме тоже должны содержать эти параметры.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@cheplv
Эта проблема появляется когда пользователь заходит в приложение через версию для мобильных приложений (m.ok.ru). fapi5.js не получает параметр web_server. Если смотреть глубже то для мобильной версии fapi5.js можно использовать только для вызовов REST.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы