我在 Facebook(以及少数几个俄罗斯社交网络)有一个小型纸牌游戏,它通过旧的 REST API 获取用户的 id、名字和头像。
现在我正在尝试使用适用于 Android 和 iPhone的Flex Hero SDK开发与移动应用程序相同的游戏。这意味着我不能为这些平台使用本机 SDK,但必须使用Facebook page 中描述的 OAuth。
我正在尝试编写一个简短的 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
)
但是我现在如何使用这个令牌来查找用户的姓名和头像,尤其是我对如何获取当前用户 ID 感到困惑?
在使用 REST API 时,我总是通过调用知道当前用户 ID$userid=$fb->require_login()