Facebook应用程序构建。如何进行简单的API调用?

时间:2010-10-27 12:50:48

标签: api facebook

我有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的工作正常。

任何帮助将不胜感激。感谢。

1 个答案:

答案 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,但它至少对我有用