FQL - 获取访问令牌

时间:2012-06-11 02:32:06

标签: facebook facebook-graph-api

我需要别人的帮助。

当我打开https://developers.facebook.com/docs/reference/api/并点击https://graph.facebook.com/me/likes?access_token=blablabla时,我获得了所有我喜欢的页面。

我的问题是,从哪里获得access_token值?我可以通过脚本获得吗?

1 个答案:

答案 0 :(得分:1)

Facebook开发者网站利用内部测试控制台应用程序,所有开发人员都可以使用该应用程序来测试文档中的调用,站点会自动附加access_token。

下一个地方可以使用Graph API Explorer应用程序找到访问令牌https://developers.facebook.com/tools/explorer

您也可以按照http://developers.facebook.com/docs/authentication/

中描述的身份验证流程之一通过脚本获取它

您需要在https://developers.facebook.com/apps然后

创建一个应用程序

例如,通过使用服务器端流程的PHP,

  • 将用户重定向到OAuth对话框($ dialog_url,如下所示)
  • 将提供代码
  • 交换用户访问令牌的代码($ token_url,如下所示)
<?php 

   $app_id = "YOUR_APP_ID";
   $app_secret = "YOUR_APP_SECRET";
   $my_url = "YOUR_URL";

   session_start();
   $code = $_REQUEST["code"];

   if(empty($code)) {
     $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
     $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
       . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
       . $_SESSION['state'];

     echo("<script> top.location.href='" . $dialog_url . "'</script>");
   }

   if($_SESSION['state'] && ($_SESSION['state'] === $_REQUEST['state'])) {
     $token_url = "https://graph.facebook.com/oauth/access_token?"
       . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
       . "&client_secret=" . $app_secret . "&code=" . $code;

     $response = file_get_contents($token_url);
     $params = null;
     parse_str($response, $params);

     $graph_url = "https://graph.facebook.com/me/likes?access_token=" 
       . $params['access_token'];

     $likes = json_decode(file_get_contents($graph_url));
     print_r($likes); // A dump of the likes data
   }
   else {
     echo("The state does not match. You may be a victim of CSRF.");
   }

 ?>

查看http://developers.facebook.com/docs/authentication/server-side/

提供的更多参考信息