У меня есть небольшая карточная игра на Facebook (и несколько российских социальных сетей), которая получает идентификатор пользователя, имя и аватар через старый REST API.
Сейчас я пытаюсь разработать ту же игру, что и мобильное приложение, с Flex Hero SDK для Android и iPhone. Это означает, что я не могу использовать собственные SDK для этих платформ, но должен использовать OAuth, как описано на странице Facebook .
Я пытаюсь написать короткий скрипт PHP, который бы возвращал информацию о пользователе в виде XML в мое мобильное приложение. Мой скрипт уже может получить токен:
<?php
define('FB_API_ID', 'XXX');
define('FB_AUTH_SECRET', 'XXX');
$code = @$_GET['code'];
# this is just a link for me, for development puposes
if (!isset($code)) {
$str = 'https://graph.facebook.com/oauth/authorize?client_id=' . FB_API_ID .
'&redirect_uri=http://preferans.de/facebook/mobile.php&display=touch';
print "<html><body><a href=\"$str\">$str</a></body></html>";
exit();
}
$req = 'https://graph.facebook.com/oauth/access_token?client_id=' . FB_API_ID .
'&redirect_uri=http://preferans.de/facebook/mobile.php&client_secret=' . FB_AUTH_SECRET .
'&code=' . $code;
$ch = curl_init($req);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$page = curl_exec($ch);
if (curl_errno($ch))
exit('Download failed');
curl_close($ch);
parse_str($page, $data);
#header('Content-Type: text/xml; charset=utf-8');
#print('<?xml version="1.0"? ><app>');
print_r($data);
#print('</app>');
?>
Это хорошо работает, и я получаю токен:
Array
(
[access_token] => 262578703638|2.OwBuoa2fT5Zp_yo2hFUadA__.3600.1294904800-587287941|ycUNaHVxa_8mvenB9JB1FH3DcAA
[expires] => 6697
)
Но как я могу использовать этот токен сейчас, чтобы найти имя пользователя и аватар, и особенно меня смущает, как я могу получить текущий идентификатор пользователя?
При использовании REST API я всегда знал текущий идентификатор пользователя, вызывая $userid=$fb->require_login()