Facebook PHP SDK의 getUser() 메서드가 항상 0을 반환하는 이유는 무엇입니까?
getUser()를 사용하여 Facebook 사용자 ID를 검색하려고 할 때 PHP SDK의 메서드를 사용하면 많은 개발자가 지속적으로 값 0을 받는 문제에 직면합니다. 이 문제는 로그인 버튼을 통해 애플리케이션을 적절하게 인증했음에도 불구하고 발생합니다.
이 문제의 가능한 원인 중 하나는 프레임워크가 $_REQUEST 변수에 의존하기 때문입니다. 그러나 환경에서는 $_REQUEST를 $_GET, $_POST 및 $_COOKIE 변수와 자동으로 병합하지 않을 수도 있습니다. 이러한 불일치로 인해 인증 코드를 검색하는 getCode() 함수의 기능이 방해를 받을 수 있습니다.
해결 방법:
이 문제를 해결하려면 base_facebook에서 getCode() 함수를 수정하세요.
protected function getCode() { $server_info = array_merge($_GET, $_POST, $_COOKIE); if (isset($server_info['code'])) { if ($this->state !== null && isset($server_info['state']) && $this->state === $server_info['state']) { $this->state = null; $this->clearPersistentData('state'); return $server_info['code']; } else { self::errorLog('CSRF state token does not match one provided.'); return false; } } return false; }
이 수정을 통해 getCode() 함수가 가능한 모든 요청 변수에 인증 코드가 포함되어 있습니다. 이 변경 사항을 구현한 후에는 getUser() 메소드가 로그인한 Facebook 사용자를 올바르게 식별해야 합니다.
위 내용은 Facebook의 PHP SDK `getUser()` 메소드가 0을 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!