В объекте FB CanvasLoginHelper отсутствует информация для некоторых пользователей, вызывающая сеанс NULL - PullRequest
0 голосов
/ 26 мая 2018

В объекте FB CanvasLoginHelper отсутствует информация для некоторых пользователей, что приводит к пустому сеансу для этих пользователей.

У кого-нибудь есть идеи как это исправить?Любые идеи, почему $ helper для некоторых пользователей не работает, но работает для других или почему он временно не работает для некоторых пользователей?

Использование PHP SDK 5.0.0

Код используется уже около2 года, работает правильно для всех пользователей без каких-либо существенных изменений за этот период времени.Он внезапно перестал работать несколько ночей назад.Некоторые пользователи не были затронуты вообще, некоторые были затронуты в течение короткого времени (около 16 часов), а другие все еще остаются затронутыми.

Ошибки не генерируются.

См. Код ниже.

Влияет на все браузеры.Попытка использования пользователями нескольких резервных копий, очистки всех кешей и перезагрузки устройства.Ничто не устранило проблему.

Я сделал var_dumps для объектов и сравнил результаты для пользователей, которые работают, с теми, кто не работает.Вот различия в выводе var_dump.

$helper : 
    ["rawSignedRequest"] is much shorter (188 characters vs 546)
    no [expires] property
    no [oauth] property
    no [user_id] property

$signed_request :
    ["rawSignedRequest"] is shorter
   no [oauth_token] property
   no [user_id] property

$session :
   returns NULL

Я искал похожие проблемы без какой-либо удачи.Большинство идентифицирует отсутствующий session_start () после открытия


<?php
session_start(); 
require('../Session/init.php');
require_once '../Facebook/autoload.php';

FacebookSession::setDefaultApplication( 'myAppId','mySecret'  );
$helper = new FacebookCanvasLoginHelper();
var_dump($helper);

try {
  $session = $helper->getSession();
  $signedRequest = $helper->getSignedRequest();
  var_dump($signedRequest);
  } catch(FacebookRequestException $ex) {
  logError('FBIndex - New Session', $ex->getCode(), $ex->getMessage());
  echo "<div>Error connecting with FB. Please try again later.</div>";
  exit();
  } catch(\Exception $ex) {
  logError('FBIndex - New Session', $ex->getCode(), $ex->getMessage());
  echo "<div>Error connecting with FB. Please try again later.</div>";
  exit();
  }

var_dump($session);
 if ($session) {
etc...
...