Tema: facebook canvas pages autorizacija
Autorius: Jornada Del Muerto
Data: 2010-11-23 20:56:42
Sveiki, 

    Zodziu praktiskai pasidariau savo nedideli fb canvas page (ne IFRAME) varikliuka ir nuejus i mano canvas app (aka http://apps.facebook.com/app_name) klausiami permission'ai ir t.t... kodas daugmaz toks:

  // login or logout url will be needed depending on current user state.
  if ($this->me) {
   $this->logoutUrl = $this->facebook->getLogoutUrl();
  } else {
   $this->loginUrl = $this->facebook->getLoginUrl(
    array(
     'canvas' => 1,
     'fbconnect' => 0,
     'req_perms' => $this->permissions,
     //'display'   => 'page'
     )
    );
  }


  // render FBML to reload page to ask perms if not logged in
  if($autologin && !$this->IsLoggedIn()) {

   print '<fb:redirect url="' . $loginUrl . '" />';    <-- sis kaip ir normaliai viekiantis

   //print '<a href="'.$loginUrl.'">login</a>';    <-- sis variantas kada turi clickint nuoroda ir tada tik pasiulomi permissionai
   //header("location: ".$loginUrl);     <-- sis variantas neveikia nes ten eina url su kruva get parametru

   //$this->facebook->api('/me');
  }

    Visa tai veikia ir nuejus i app ismeta fb accept/deny dialoga, acceptinus su ne developer accountu ir po to pasalinus sia fb app ir vel nuejus i si url sistema jau nesuveikia, puslapis uzsiciklina persikraudineti, kiek skaiciau tai jei useris tavo app pasalina tu prie jo jokios informacijos negali prieit kaip ir buna app uzblokuota ar kazkas tokio....

    Ir suveikia tik davus:  print '<a href="'.$loginUrl.'">login</a>'; 

    Varianta kada useris pats paclickina, kas idomu jis clickina is esmes tapacia nuoroda... o daugelis apps'u be problemu veikia ir jei juos pasalini ir vel nueini i juos tiesiog vel klausia permissionu.

Tiesa naudoju naujausia Facebook PHP-SDK kuris neturi ten tos funkcijos Facebook->require_permissions ar kaip ji ten, su sena sdk verisja nebutu bedu, bet nesinori atsilikti, sakau gal kokiu ideju turite?