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.
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í.
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.
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.
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.
Podobné články
Komentáře k článku
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.
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:
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.
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?
Zkusil jsem, jde to v pohodě.
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
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?
No používám ctrl c-v z okna prohlážeče (http://www.tatanamaterske.cz/).
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,
No, něčím jiným, než je Facebook. Třeba s využitím modulu Rate.
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