我有4年的专业PHP开发经验,我有丰富的会话处理经验等。
我想学习如何构建Facebook应用程序。我已经完成了下载Facebook Developer应用程序的过程,我已经习惯了创建应用程序,我已经将画布URL设置为托管应用程序的位置。
我可以使用Facebook用户帐户成功“安装”该应用,我可以成功访问它。我已经注意到,当加载应用程序时,会传递一整串数据,其参数名称为fb_sig_user和fb_sig_session_key。目前,我对这些参数一无所知。
在应用程序端,显然我应该使用自己的APP ID密钥和SECRET密钥创建一个Facebook对象,我已经完成了。
但我似乎无法弄清楚如何从我的应用程序回到Facebook开始进行API调用。
此时,我如何做一些简单的事情,例如获取此人的姓名并将其显示给他们?
例如,我如何:
$first_name = $facebook->getUserFirstName();
..做那样的事情?
我只是想做一个简单的测试,以确保API的工作正常。
任何帮助将不胜感激。感谢。
答案 0 :(得分:2)
Facebook PHP SDK可能是你的第一站,有些example code可能是一个非常接近的亚军。
使用Facebook SDK设置API调用就好了;
$me = $facebook->api('/me'); // Returns array containing data for currently logged in user depending on given permissions
或
$my_friends = $facebook->api('/me/friends'); // Returns array containing information on friends of currently logged in user
甚至
$my_profile_img = $facebook->api('/me/picture'); // Returns a string containing URL to users profile picture.
此外,开放图表中的所有内容都有唯一的ID,您可以在/me
中插入而不是我。
为了进一步深入描述Open Graph,我建议转到the official Graph API Overview页面。
一旦你设置它就可以轻松有趣地工作 - 虽然有点慢。
更新
为了获取Facebook cookie并设置会话,我做了:
$cookie = get_facebook_cookie($fbconfig['appid'], $fbconfig['secret']);
function get_facebook_cookie($app_id, $application_secret) {
$args = array();
parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
ksort($args);
$payload = '';
foreach ($args as $key => $value) {
if ($key != 'sig') {
$payload .= $key . '=' . $value;
}
}
if (md5($payload . $application_secret) != $args['sig']) {
return null;
}
return $args;
}
if (isset($cookie)) {
$session = $facebook->getSession($cookie);
}
然后将Facebook.php第332行更新为
public function getSession($passedCookie) {
和第373行
$this->setSession($passedCookie, $write_cookie);
Lame hacking,但它至少对我有用