Tlačítko Facebook přihlášení vedle tlačítka formuláře
- mishak
- Člen | 94
Jednoduché přidání tlačítka Facebook přihlášení do formuláře.
FacebookLoginButton.php
<?php
use Nette\Forms\Button;
use Nette\Web\Html;
class FacebookLoginButton extends Button {
public function getControl($caption = NULL)
{
$control = Html::el('fb:login-button', array(
'autologoutlink' => 'true',
));
return $control;
}
}
?>
Přidání do formuláře:
<?php
$form['facebook_dummy'] = new FacebookLoginButton;
?>
Samozřejmě na konci layoutu musíte nahrát skript facebooku:
{var $locale => 'cs_CZ'}
{var $appId => '12345'}
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({ appId: '{$appId}', status: true, cookie: true,
xfbml: true });
};
(function() {
var e = document.createElement('script');
e.type = 'text/javascript';
e.src = document.location.protocol +
'//connect.facebook.net/{!$locale}/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
Jestli někoho napadne jednodušší nebo lepší způsob jak vkládat další prvky vedle normálních prvků formuláře napište :). Samozřejmě asi jedna z prvních možností je použít javascript a login button naprat vedle přihlásit tlačítka přes DOM až po načtení stránky. Nejde mi o technické řešení přihlašování do Facebooku, i když chápu že je to celkem úzce provázané.
Poslední úprava je italikou.
Editoval mishak (23. 3. 2011 16:18)
- Jan Jakeš
- Člen | 177
22 napsal(a):
proč ne PHP SDK https://github.com/…ook/php-sdk/ ?
Přesně tak. Na co includovat zbytečně script, když jde použít
normální odkaz.
Navíc od (X)FBML chce Facebook postupně ustupovat a pro FB widgety doporučuje
použití iframes.
- mishak
- Člen | 94
Prosím o rozepsání komentářů, jak nahradí odkaz tlačítko, když chci tlačítko. Příklad demonstruje způsob jak začlenit toto tlačítko do formuláře tak, že lze vykreslit třeba Přihlásit a Facebook přihlásit na stejné úrovni.
Jestli dobře chápu první komentář lze použít api pro vygenerování odkazu pro přihlášení, tím pádem není třeba řešit přihlášení přes skript. Díky za upozornění technický způsob přihlášení jsem zatím neřešil ale určitě odkazovaný zdroj nastuduji.
Přihlašování a Facebook jsem řešil před čtvrt rokem jestli za tu dobu zavrhli *FB**, dovoluji si pochybovat nad expiracnim datem JS API. (Nechci to dál rozebírat berte to jako glosu)
- Jan Jakeš
- Člen | 177
mishak napsal(a):
Prosím o rozepsání komentářů, jak nahradí odkaz tlačítko, když chci tlačítko. Příklad demonstruje způsob jak začlenit toto tlačítko do formuláře tak, že lze vykreslit třeba Přihlásit a Facebook přihlásit na stejné úrovni.
Můžeš například použít úplně normální tlačítko a v metodě pro jeho obsluhu zavolat metodu pro Facebook login.
Tzn. co já chtěl říct je, že s PHP-SDK stačí zavolat
$facebook->getLoginUrl($parametry)
se správnými parametry.
Např. odkazem takto:
<a href="{$facebook->getLoginUrl($parametry)}">
Login with Facebook
</a>
Přihlašování a Facebook jsem řešil před čtvrt rokem jestli za tu dobu zavrhli *FB**, dovoluji si pochybovat nad expiracnim datem JS API. (Nechci to dál rozebírat berte to jako glosu)
Expirační datum není žádné. Facebook bude nadále podporovat (X)FBML pro stávající aplikace, ale nebude ho povolovat pro nové a to od března 2011 – https://developers.facebook.com/roadmap/.
Editoval Juan (23. 3. 2011 13:50)
- Jan Jakeš
- Člen | 177
Aha, já asi úplně nepochopil, na co se ptáš. Jak vypadá vygenerovaný
HTML kód toho tvého Facebook tlačítka? Pokud je to element
fb:login-button
, tak mi asi pořád není jasné, na co ho chceš
mít přímo ve formuláři.
Ty pomocí něj kromě přihlášení potřebuješ odeslat ještě formulář? Nebo potřebuješ odeslat při submit formuláře i nějaké „hodnoty“ z tohoto tlačítka? Ani jedno mi nedává smysl, protože tam tak jako tak máš includovaný skript, který stisk toho tlačítka obslouží. Nebo mi něco uniklo?