У меня есть небольшой card game на Facebook (и несколько русских социальных сетей), который получает идентификатор пользователя, имя и аватар через старый REST API.Использование Facebook Graph API из мобильного приложения
Теперь я пытаюсь разработать ту же игру, что и мобильное приложение, с Flex Hero SDK для Android и iPhone. Это означает, что я не могу использовать собственные SDK для этих платформ, но должен использовать OAuth as descibed at Facebook page.
Я пытаюсь написать короткий 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
)
Но как я могу использовать этот маркер в настоящее время, чтобы найти имя и аватар пользователя и особенно I «Смутно, как я получу идентификатор текущего пользователя?
При использовании REST API, я всегда знал, текущий идентификатор пользователя, позвонив $userid=$fb->require_login()
Спасибо, что это хорошо работает. Я просто удивляюсь, почему мой аватар не входит в число возвращаемых данных, и если я могу уменьшить возвращаемые данные до нужных мне вещей (в настоящее время он возвращает слишком много данных, включая мою биографию, местоположение и т. Д.) –
вы можете запросить https: //graph.facebook.com/me/picture?access_token=XXXXX Это приведет к перенаправлению на изображение пользователя 302. –