O método getUserFromAvailableData não existe
-
12-12-2019 - |
Pergunta
Estou tentando configurar um sistema para fazer login automático de um usuário em meu site se ele já estiver conectado ao Facebook em outra aba e recebi esta mensagem de erro do Zend Framework:
Message: Method "getUserFromAvailableData" does not exist and was not trapped in __call()
Já baixei a API php do Facebook em https://github.com/facebook/facebook-php-sdk e carreguei-o no meu servidor, e o método realmente existe, na linha 463 do arquivo base-facebook.php.É aqui que estou chamando a API, se isso fizer alguma diferença.
require_once(BASE_PATH . "/library/facebook-php/src/facebook.php");
$fbid = Facebook::getUser();
O que poderia estar causando esse erro?Estou fazendo algo errado da minha parte?
Solução
Na página do site do desenvolvedor para a função getUser, aqui, eles mostram o método como estático.Eles usam o cabeçalho Facebook::getUser()
, mas se você olhar o código-fonte em base-facebook.php você encontrará esta linha:
return $this->user = $this->getUserFromAvailableData();
Mesmo que eles mostrem que é estático na documentação, ou pelo menos façam com que pareça que é, você pode ver aqui que na verdade depende de haver primeiro uma instância do Facebook e que o motivo pelo qual não foi possível encontrar o método no meu código é que não criei um.Assim que criei uma instância do Facebook, a mensagem de erro desapareceu.