Článek v rubrikách:
Jak mi facebook vzal 4 dny života
Zkoušeli jste už implementovat facebook login? Facebook registraci a facebook registratoin plugin? Na posledním projektu to trvalo 4 dny!
Facebook má pro přihlášení několik sdk. Pracovat pravděpodobně budete s php-sdk a javascript-sdk. Vše načtete v manuálu, je to celkem snadné developers.facebook.com/docs/plugins/registration/ není to ani nejhůře popsané, ale vtip tkví v tom, že k současnému datu javascript-sdk a php-sdk nespolupracuje!
Používám u obojího nejnovější verze dokonce i najdete zmínku o tom, že od 21 května za 4 týdny bude vše fungovat developers.facebook.com/blog/post/503. Ale dnes je 3. prosince a problém stále nevyřešen. V dokumentaci žádná zmínka o problému a tak trvá dlouhou dobu než vůbec zjistíte o co jde.
Javascript SDK si totiž COOKIE ukládá podle svého a PHP-SDK také podle svého, no není divu, že se nemůžou dohodnout a tak v javascriptu se v app tváří, že uživatel je přihlášen, že je vše ok, ale php vám stále tvrdí, že uživatele nezná.
Vyřešil jsem to tímto hackem.
- $facebook = new Facebook(array(
- 'appId' => FB_APP_ID,
- 'secret' => FB_SECRET,
- ));
- if (isset($_COOKIE['fbs_' . $facebook->getAppId()])) {
- $cookie = preg_replace("/^"|"$/i", "", $_COOKIE['fbs_' . $facebook->getAppId()]);
- parse_str($cookie, $data);
- if (isset($data['access_token'])) {
- $facebook->setAccessToken($data['access_token']);
- }
- }
komentáře
RSS Komentáře


