最初に「ログインURL」を取得します:
if (!$facebook->getUser())
{
$login_url = $facebook->getLoginUrl(array(
'scope' => 'publish_stream'
));
}
そしてそれにリダイレクトします。ユーザーがログインしていない場合は、ログインするように要求します。ユーザーがアプリを承認する必要がある場合は、それも要求します。
問題は、ユーザーがアプリを承認し、redirect_uri にリダイレクトした後でも、ユーザーに関する情報を取得するためにトークンを取得できることです。これ:
$facebook->getAccessToken()
アプリのアクセス トークン (パイプが真ん中にあるもの) を返します。これ: $facebook->getUser() は 0 を返します。そして、ログイン URL を要求する無限ループで終了します (最初に、APP の承認を要求します)。 ) $facebook->getUser() が 0 を返すため、redirect_uri へのリダイレクトが再度要求されます。
そして面白いのは、このコードを他のサーバー(世界の他の場所にあるサーバー)で使用すると機能することです。そして、これを他のサーバー(世界の他の場所でも)で試してみると、60%しか機能しません。
問題はどこだ?私のコードで?私のサーバーで?フェイスブックで?
ありがとう !!!