0

Facebookログインを行うクラスの簡単なメソッドを開発しました。これはコードです:

   public function auth()
   {   
      $config = array(
         'appId'  => Configure::read('FB.id'),
         'secret' => Configure::read('FB.secret'),
         'cookie' => true      
      );

      $this->provider = new Facebook($config);

      $user = $this->provider->getUser();

      debug($user);
      debug($_GET['code']);

      if ($user)
        {
            return $user;
      }          

      // Errors?
      if (!isset($this->controller->request->query['error']))
      {
         $params = array(
            'scope'        => Configure::read('FB.scope'),
            'redirect_uri' => Configure::read('FB.callback')
         );

          // Redirect login page
         $this->controller->Session->write('login.redirect', $this->provider->getLoginUrl($params));                                               
      }
        return false;
   }

メソッドは簡単です。私は Facebook SDK の例に従いました。

Facebook が私の redirect_uri を呼び出すと、次のパラメーター (クエリ文字列) を取得するため、ユーザー情報の取得に問題があります。

  • コード

したがって、Facebook からエラーは発生しませんが、getUser() は引き続き 0 を返します。

なんで?

##### 編集: #####

それは本当に奇妙すぎます... FacebookアプリのURIでリダイレクトURIを変更した場合にのみ機能します。変更しました:

https://www.mywebsite.com/panel/

https://apps.facebook.com/MY_APP/panel/

それは機能します....うーん、なぜFacebookのURLを使用する必要があるのですか?

PS私はCakePhpを使用しています。このジョブを実行するプラグインがあることは知っていますが、CakePhpから始めたので、それを書くコードを学びます。

4

0 に答える 0