如何获取令牌访问我的一个Facebook页面

时间:2012-07-25 14:17:05

标签: facebook facebook-fql facebook-authentication

所以这是交易,我正在学习如何使用facebook api,我在尝试理解它时遇到了一些困难,文档根本没有组织 imho

所以我收到此错误“模拟访问令牌只能与图谱API一起使用”

我认为这是因为我从图形API资源管理器中复制了令牌。

我这个项目的主要目的是建立一个普通的网站,获取我的Facebook页面的一些数据(专辑,照片和事件),并将其作为页面内容显示在网站上。这就像facebook页面是后台。

我该如何解决这个问题?

这是一个真实的例子,我正在努力实现的目标: http://codecanyon.net/item/facebook-album-gallery/full_screen_preview/400462

1 个答案:

答案 0 :(得分:1)

我同意FB文件很好......“没有组织”。

无论获取访问令牌需要几个步骤..从FB资源管理器复制都无法正常工作。

  1. 注册FB应用
  2. 使用FB应用程序ID和密钥创建.php页面(例如)以让用户为您提供特别请求的权限
  3. 当用户完成权限请求时,FB会将用户重定向到指定的回调并将access_token附加到URL
  4. 解析该令牌,并将其存储在某个地方
  5. 使用该access_token从您想要的API中获取数据
  6. 如果access_token是永久性的,那么您可以使用存储的令牌以便以后离线获取更多数据。
  7. 我按如下方式修改了示例代码,以创建应用权限抓取器:

    $app_id = "myappid";
    $app_secret = "mysecret";
    $my_url = "http://mycallbackurl";
    session_start();
    $code = $_REQUEST["code"];
    (empty($code)) {
     $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
     $dialog_url = "https://www.facebook.com/dialog/oauth?client_id="
       . $app_id . "&redirect_uri=" . $my_url 
       . "&scope=offline_access,manage_pages,read_stream,read_insights,export_stream,read_friendlists";
    
      }else{
    
      $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?access_token="
       . $params['access_token'];
    
     $user = json_decode(file_get_contents($graph_url));
     $at = $params['access_token'];
     $uid = $user->id;
     $un = $user->name;
    
     ...and so on