Jak zprovoznit přihlášení přes Facebook do Drupalu

Pro Drupal existuje mnoho modulů nabízejících integraci s Facebookem. Kromě jiných funkcí vám nabídnou i možnost přihlašování do Drupalu přes Facebook a automatické vytvoření účtu na webu.

Přihlašování do Drupalu nemusí být omezeno jen na klasickou registraci a používání vytvořeného jména a hesla. Přímo v jádře Drupalu najdete podporu pro přihlašování přes OpenID. Po instalaci doplňkových modulů můžete začít používat přihlašování přes MojeID, Windows Live ID (nyní Microsoft Account) a třeba i přes Facebook.

Právě poslední zmíněný způsob přihlašování je hlavním tématem tohoto článku. Ukážeme si, jaký modul pro Drupal potřebujete, co je nutné provést na straně Facebooku a jak Drupal odpovídajícím způsobem nastavit pro facebookové přihlašování a automatické vytvoření uživatelských účtů.

Krok první: aplikace na Facebooku

Abyste mohli do svého webu integrovat přihlašování přes Facebook, potřebujete vytvořit aplikaci na Facebooku. Neděste se, nemusíte se učit programovat nic nového, jde jen o vyplnění formuláře. Přejděte na stránku developers.facebook.com/apps a klepněte na tlačítko Vytvořit novou aplikaci.

Do panelu, který na vás vykoukne, vyplňte název své aplikace. Hosting na Heroku nepotřebujete, nezapínejte jej. V dalším kroku opište kontrolní kód z obrázku captcha a vytvoření aplikace následně dokončete v novém formuláři na stránce.

Facebook

V sekci pojednávající o způsobu integrace aplikace do Facebooku zapněte podporu Přihlášení pomocí Facebooku a nastavení uložte. Facebook vám vygeneruje dva řetězce, App ID a App Secret, které budete potřebovat v další části.

Krok druhý: modul Drupal for Facebook

Nyní potřebujete integrovat podporu Facebooku do Drupalu. Alfou a omegou je v tomto případě modul Drupal for Facebook. Kromě podpory facebookového přihlašování nabízí mnoho dalších věcí, například posílání komentářů na zeď Facebooku.

Pro účely přihlašování přes Facebook zapněte tyto součásti modulu:

  • Facebook API
  • Facebook Apps
  • Facebook Connect
  • FB User Management
  • FB Registration

Nyní je třeba v nastavení modulu zaregistrovat vaši facebokovou aplikaci. Přejděte do administrační části Struktura > Facebook Apps a přidejte nastavení nové aplikace. Zadejte její název stejně, jako v průvodci na Facebooku (nevím, zda je to nutné) a opište Facebook App ID a Secret podle údajů, které vám Facebook vygeneroval.

Následuje nastavení toho, co se má dít s uživatelskými účty v Drupalu. V sekci Facebook User Settings zapněte vytvoření místních účtů (tedy těch v Drupalu) v případě, že uživatel autorizuje aplikaci. Pro namapování účtů ponechejte dvě výchozí volby. Pokud chcete uživatelům přihlášeným přes Facebook dát nějakou jinou uživatelskou roli, můžete ji vybrat z rozbalovací nabídky. Poté nastavení uložte.

Do složky sites/all/libraries stáhněte, rozbalte a nakopírujte balíček Facebook PHP SDK (na stránce klepněte na Download as ZIP, hlášení o neexistujících downloadech se nenechejte vyvést z míry). Rozbalte jej jako složku facebook-php-sdk. V rámci webu tedy musí vzniknout složka sites/all/libraries/facebook-php-sdk.

Přejděte do administrační části Struktura > Facebook Apps > Facebook Connect. Z rozbalovací nabídky si vyberte primární aplikaci, která bude sloužit pro přihlašování přes Facebook (máme tam nyní jen jednu). Nastavení uložte.

Krok třetí: jak doladit nastavení

Základní část propojení Drupalu a Facebooku máte nyní za sebou, zbývá nastavení jen doladit. Přejděte do administrační části Struktura > Facebook Apps > User settings. Hned první volba, Validate session vám umožní ověřovat registraci a automatické uživatele oproti Facebooku. Jelikož je nutná komunikace mezi servery, způsobí to určitě zdržení načtení webu. Na druhou stranu, přihlašování i registrace funguje i bez tohoto vylepšení.

Dále doporučuji přepnout vytváření názvů uživatelských účtů u lidí přihlášených přes Facebook z výchozí strojové volby na klasickou Jméno Příjmení. V sekci Form Alters si pak pozapínejte, kde všude chcete mít tlačítko pro přihlášení přes Facebook. Na výběr je registrační formulář, stránka pro přihlašování a blok pro přihlašování. U každé z těchto položek můžete ovlivnit, co bude napsáno na modrém tlačítku pro přihlášení přes Facebook. Doporučuji text tlačítka vyplnit, jinak se zobrazí prázdné, jen s logem Facebooku.

Po uložení nastavení už nezbývá, než si to všechno vyzkoušet. Otevřete si svůj web jako nepřihlášený uživatel a podívejte se na stránku pro registraci nebo přihlášení. Klikněte na tlačítko pro přihlášení přes Facebook. Otevře se dialog Facebooku, kde se přihlásíte (nejste-li). Následuje dialog o schválení přístupu aplikace k vašemu Facebookovému účtu. Pokud jej povolíte, pak dojde k vytvoření účtu na webu, synchronizaci jména a fotografie a k přihlášení.

Facebook

Již existující uživatelé, kteří by se chtěli k webu přihlašovat pomocí Facebooku, ale mají na něm jinou mailovou adresu, než na vašem webu, mohou propojení s Facebookem nastavit ve svém uživatelském profilu.

Drupal a Facebook

Statistiky využití přihlašování přes Facebook

Až budete přihlašování přes Facebook na svých stránkách používat po nějakou dobu, asi vás bude zajímat, kolik lidí této možnosti využívá. Abych pravdu řekl, u všech svých zákazníků, kde jsem toto řešení do webu implementoval, byly tyto statistiky zklamáním. Většinou byly hluboko pod hranicí počtu lidí, kteří se přihlašování přes Facebook dožadovali. Ale třeba budete mít více štěstí a své uživatele potěšíte.

Každopádně příslušné statistiky uvidíte na stránce Facebook Insights, kde naleznete seznam všech svých vytvořených Facebookových aplikací se zobrazováním statistik využití nebo možností přidat další účet jako správce aplikace. To pro případ, že jste tuto funkcionalitu zprovoznili pro někoho jiného a chcete, aby s ní mohl nakládat.

Poznámka na konec: Pokud zapomenete na modul FB Registration, nebudou se vám v Drupalu automaticky vytvářet uživatelské účty.

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

návštěvník

dobrý den, na svém webu již nějakou dobu toto řešení používám, však modul facebook registration zapnutý nemám a účty se mi přesto automaticky vytvoří. je nějaký rozdíl mezi tím když je vypnutý nebo zapnutý? jinak pěkný článek, děkuji

Profile picture for user Jan Polzer

Pokud jsem tento modul neměl zapnutý, uživatel se sice jakoby přihlásil, ale nevznikal uživatelský účet v Drupalu. Tak nevím.

návštěvník

no, v nastavení aplikace, kde se zapisuje facebook app id a klíč je podzáložka facebook user settings a tam se nastavuje vytváření lokálního účtu... http://i45.tinypic.com/hsurfl.jpg
zřejmě to také funguje:

Profile picture for user Jan Polzer

Však, ano, to výše zmiňuji. Ale neměl jsem to tam do doby, dokud jsem nezapnul registrační submodul. Ale možná to tak bylo jen v prvních verzích.

návštěvník

Zkusil jsem modul FB a funguje mi spravne. Jen po instalaci mi prestalo fungovat zanorovani (drag-and-drop) v taxonomy. Trvalo mi pres dve hodiny nez jsem nasel ktery modul to zapricinil. Nevim zda slo o kombinaci verze Drupalu (mam 7.16) nebo nejake nastaveni na serveru, ale zkusil jsem dvakrat instal/uninstal a vzdy stejne. Dela to i nekomu jinemu?

návštěvník

Můžu poprosit o ver. Drupalu a ver. modulu FB? Ze bych vyzkousel zda mam neco spatne u sebe. Předem díky

návštěvník

zajimave ze s modulem Facebook 7.x-3.3-beta1. funguje ok a nic nezablokuje. diky

návštěvník

Asi budu tak trochu za troubu, ale bez pomoci to asi nedám.
Postupoval jsem podle víše uvedeného návodu (dokonce jsem si kvůli tomu udělal
profil na facebooku), při tvorbě app aplikace po zadání volby přihlášení pomocí
facebooku, to po mne chce url stránky zkušel jsem zadat svoji stránku (bez url
mi to nejde uložit). Vše se v pohodě uložilo, ale po nastavení ostatních funkcí
v drupalu mi to hází chybu:

API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: Invalid redirect_uri: Given URL is not allowed by the
Application configuration.

Předem dík za radu kde dělám chybu

Profile picture for user Jan Polzer

Pokud si dobře pamatuji, taky se mi to stalo a je to problém spočívající v tom, že URL stránky je na Facebooku chybně zadané. Kontroloval jste to?

návštěvník

Dokážete mi poradit jak dávat hlasy k určitému odkazu přestože podmínkou je přihlášení na facebookový účet? Popř. finanční dohoda,

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Poslední komentáře