Tlačítko Facebook přihlášení vedle tlačítka formuláře

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

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)

22
Člen | 1478
+
0
-
Jan Jakeš
Člen | 177
+
0
-

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.

sodae
Nette Evangelist | 250
+
0
-

co má společného XFBML a přihlášení?

mishak
Člen | 94
+
0
-

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
+
0
-

sodae napsal(a):

co má společného XFBML a přihlášení?

Podívej se na první příspěvěk. Používá XFBML k vygenerování tlačítka pro přihlášení.

Jan Jakeš
Člen | 177
+
0
-

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)

mishak
Člen | 94
+
0
-

Dík za technické informace, původně komentáře jsem měl na mysli ohledně vkládání dalších prvků do formuláře. Napsal jsem ale něco jiného v hlavním postu, za to se omlouvám, opravím to.

Jan Jakeš
Člen | 177
+
0
-

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?