«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мой API-интерфейс Facebook Graph не работает после перехода с версии 2.2 на версию 2.3?

Почему мой API-интерфейс Facebook Graph не работает после перехода с версии 2.2 на версию 2.3?

Опубликовано 22 декабря 2024 г.
Просматривать:387

Why is My Facebook Graph API Failing After Migrating from v2.2 to v2.3?

API Graph Facebook не работает после перехода с версии 2.2 на версию 2.3

После обновления API Graph Facebook до версии 2.3, разработчики столкнулись с проблемами, из-за которых некоторые запросы API не возвращали данные. В этой статье рассматриваются конкретные возникающие проблемы и предлагаются решения на основе изменений, внесенных в последнюю версию SDK.

Описание проблемы

Разработчики сообщили, что запросы API, которые ранее работало в версии 2.2, теперь не возвращает результатов в версии 2.3. В частности, были затронуты следующие запросы:

  • /me/albums with columns=albums
  • /me без указания каких-либо полей (используется для получения даты рождения пользователя)

Решение

Проблема связана с изменениями, внесенными в v2.3 в формат Ответы JSON, возвращаемые конечной точкой токена доступа OAuth. В SDK версии 3.2.2 функция getAccessTokenFromCode() неправильно анализирует ответ JSON как массив, а не как объект, что приводит к получению неправильного токена доступа пользователя.

Чтобы решить эту проблему, используйте метод getAccessTokenFromCode( ) необходимо обновить функцию для правильного анализа ответа JSON:

$response = json_decode($access_token_response);
if (!isset($response->access_token)) {
  return false;
}
return $response->access_token;

Дополнительные обновления для токенов расширенного доступа

Для приложений, использующих токены расширенного доступа, аналогичное изменение требуется в функции setExtendedAccessToken():

//Version 2.3 and up.
$response = json_decode($access_token_response);
if (!isset($response->access_token)) {
  return false;
}

$this->destroySession();

$this->setPersistentData(
  'access_token', $response->access_token
);

Заключение

Учитывая вышеупомянутые изменения в анализе ответов JSON, разработчики могут гарантировать, что их запросы API работают так, как ожидается в Facebook Graph API v2.3.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3