Přihlášování před Facebook, rerequest permicí
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- resigo
- Člen | 20
Dobrý den, všude na webu jsem hledal jak se dá udělat s Kdyby/Facebook rerequest, když uživatel nepovolí nějaké permission, našel jsem toto , ale nevím jak to správně využít, nemohl by mi někdo prosím poradit? Všem děkuji za pomoc.
Mám tohle, je to strašně neelegantní, ale vůbec mě nenapadlo, jak to dělat jinak + potřeboval bych potom právě tím redirect zavolat znovu ten dialog, aby ale vyskočilo FB okénko.
/** @return LoginDialog */
protected function createComponentFbLogin()
{
$dialog = $this->facebook->createDialog('login');
/** @var LoginDialog $dialog */
$dialog->onResponse[] = function (LoginDialog $dialog) {
$fb = $dialog->getFacebook();
if (!$fb->getUser()) {
$this->flashMessage("Sorry, Facebook authentication failed.");
return;
}
try {
$p = $fb->api('/me/permissions')->data;
$p_email = FALSE;
$p_public_profile = FALSE;
$p_user_friends = FALSE;
for ($i=0; $i < count($p); $i++) {
if($p[$i]['permission'] == "email" && $p[$i]['status'] == "granted")
{
$p_email = TRUE;
}
if($p[$i]['permission'] == "public_profile" && $p[$i]['status'] == "granted")
{
$p_public_profile = TRUE;
}
if($p[$i]['permission'] == "user_friends" && $p[$i]['status'] == "granted")
{
$p_user_friends = TRUE;
}
}
if($p_email != TRUE || $p_public_profile != TRUE || $p_user_friends != TRUE)
{
$this->flashMessage("Sorry, Facebook authentication failed.");
$this->redirect('this', array('do' => 'fbLogin-open'));
}
...
Ještě jednou děkuji. :)