0

我需要有人帮助。

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

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

4

1 回答 1

1

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

下一个可以找到访问令牌的地方是https://developers.facebook.com/tools/explorer和 Graph API 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/上查看更多参考信息

于 2012-06-11T03:02:56.917 回答