Facebook engedélyezési probléma

szavazat
3

Dolgozom a facebook app, és van valami, én csak nem értik, hogyan működik az engedélyezési rendszer.

Alapvető beállítási ez

vászon URL = domain.com/facebook

Ez egy egyszerű oldalt egy FBML iframe elem, amely arra utal, hogy domain.com/facebook/app amely egy HTML oldalt, amely arra szolgál egy Flash alkalmazás.

A Flash alkalmazás kér kiegészítő adatokat a mi alkalmazás szerver - néhány ilyen kérelmek kérni facebook adatok (például egy listát a barátja azonosítók).

Így a Flash majd tesz egy kérést domain.com/resources/facebook/friends - ez egy PHP oldal, amely létrehoz egy Facebook példány (a PHP könyvtár), és elvégzi a szükséges hívást az API és visszaadja az adatokat.

Mindazonáltal az a kérés, hogy ezt az URL (flash) nem érvényesíti, így azután átirányítja a bejelentkezési amikor majd maga irányít vissza a vászonra URL két paraméter - auth_token és jövő . Tehát a kérelem érvényes, de az átirányítás megtöri a vaku hívást.

Így próbálom kitalálni, hogyan lehet ezeket a más API-hívásokat (ha maguk szerecsendió facebook API hívások) lehet facebook-vaildated a get-go.

A kérdést 27/01/2009 19:14
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
1

Ok, rájöttem.

Mint kiderül, a Flash már következik az átirányítást - minden, amit szükségük volt észlelni (a vászon URL), amikor volt egy engedélyezési kérelem (Megjegyzendő jelenléte auth_token és jövő ), és tartalmazza a auth_token a GET paraméterként I irányítva a következő URL-t (alapvetően továbbítja a auth_token be az eredeti kérelem).

Tehát, ellentétben azzal, amit fentebb már említettük, az átirányítás nem szakította meg a vaku hívás - ez csak nem volt elég adat ahhoz, hogy érvényes kérelmet.

Válaszolt 27/01/2009 21:55
a forrás felhasználó

szavazat
1

Problémák azáltal az alábbi kódot helyett „require_login ()” vonal

if (isset($_GET['auth_token'])) {
 $sess_data=$facebook->api_client->call_method('auth.getSession',array('auth_token'=>$_GET['auth_token']));
 $facebook->set_user($sess_data['uid'],$sess_data['session_key'],$sess_data['expires']);
 $user=$sess_data['uid'];
}
if (!$sess_data) {
 $user=$facebook->require_login();
}
Válaszolt 24/01/2010 21:01
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more