Facebook callback problém

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
HonDem
Člen | 30
+
0
-

Ahoj. Snažím se vytvořit facebook login pomocí Kdyby\Facebook. Všechno se mi podařilo zprovoznit. Jakmile ale stisknu tlačítko „Login using facebook“, tak mi to vyhodí „Sorry bro, facebook authentication failed.“ pokoušel jsem se dumpnout $fb->getUser() a vytasilo to na mě fatal error, že nemůže najít callback() funkci. Prosím dokázali byste mi tady někdo nějak poradit? :) Předem děkuji

Error:

0
Fatal error: Call to undefined function Kdyby\Facebook\Diagnostics\callback() in vendor/kdyby/facebook/src/Kdyby/Facebook/Diagnostics/Panel.php on line 78

SignPresenter.php – createComponentFbLogin()

/** @return \Kdyby\Facebook\Dialog\LoginDialog */
    protected function createComponentFbLogin()
    {
        $dialog = $this->facebook->createDialog('login');

        $dialog->onResponse[] = function (\Kdyby\Facebook\Dialog\LoginDialog $dialog) {
            $fb = $dialog->getFacebook();

			//Tady se to zastaví (když tady dumpnu $fb->getUser()) ukáže se mi error hláška - výše
            if (!$fb->getUser()) {
                $this->flashMessage("Sorry bro, facebook authentication failed.");
                return;
            }

            /**
             * If we get here, it means that the user was recognized
             * and we can call the Facebook API
             */

            try {
                $me = $fb->api('/me');

                if (!$existing = $this->usersModel->findByFacebookId($fb->getUser())) {
                    /**
                     * Variable $me contains all the public information about the user
                     * including facebook id, name and email, if he allowed you to see it.
                     */
                    $existing = $this->usersModel->registerFromFacebook($fb->getUser(), $me);
                }

                /**
                 * You should save the access token to database for later usage.
                 *
                 * You will need it when you'll want to call Facebook API,
                 * when the user is not logged in to your website,
                 * with the access token in his session.
                 */
                $this->usersModel->updateFacebookAccessToken($fb->getUser(), $fb->getAccessToken());

                /**
                 * Nette\Security\User accepts not only textual credentials,
                 * but even an identity instance!
                 */
                $this->user->login(new \Nette\Security\Identity($existing->id, $existing->roles, $existing));

                /**
                 * You can celebrate now! The user is authenticated :)
                 */

            } catch (\Kdyby\Facebook\FacebookApiException $e) {
                /**
                 * You might wanna know what happened, so let's log the exception.
                 *
                 * Rendering entire bluescreen is kind of slow task,
                 * so might wanna log only $e->getMessage(), it's up to you
                 */
                \Tracy\Debugger::log($e, 'facebook');
                $this->flashMessage("Sorry bro, facebook authentication failed hard.");
            }

            $this->redirect('this');
        };

        return $dialog;
    }

Editoval HonDem (4. 8. 2015 0:49)

jiri.pudil
Nette Blogger | 1029
+
+2
-

Co používáš za verzi Kdyby/Facebook? Ve 2.0 by tohle mělo být opraveno

HonDem
Člen | 30
+
0
-

No instaloval jsem to composerem.. Bohužel verzi 1.0. Jak moc budu omezený? Nebo jaké nové funkce jsou v 2.0 ?

jiri.pudil
Nette Blogger | 1029
+
0
-

No především je tam vyřešená kompatibilita s Nette 2.3, což je zřejmě to, s čím se tady potýkáš :)

HonDem
Člen | 30
+
0
-

Ok. Updatnul jsem na 2.0 všechno jede, jak má :) Děkuji!