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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top