Facebook身份验证/请求用户ID

时间:2012-02-12 13:47:54

标签: php facebook

我正在尝试开发一个新的FB应用程序,但似乎他们再次改变了他们的方式。 我正在寻找正确的方法来验证我的应用程序的fb用户,并检索用户ID。

我找到了以下方法:

// Authenticate the user
session_start();
if(isset($_REQUEST["code"])) {
   $code = $_REQUEST["code"];
}

if(empty($code) && !isset($_REQUEST['error'])) {
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
$dialog_url = 'https://www.facebook.com/dialog/oauth?' 
  . 'client_id=' . $app_id
  . '&redirect_uri=' . urlencode($app_url)
  . '&state=' . $_SESSION['state']
  . '&scope=publish_actions';

print('');
exit;

我的问题是现在。 我根本不需要facebook SDK吗?由于这里不需要我认为它根本不需要。 正确的方法是将此代码置于我的所有文档之上,从而不断确保用户获得授权吗?

谢谢

2 个答案:

答案 0 :(得分:2)

正确,不再需要SDK。 Facebook正试图让开发人员使用他们的Graph API,这就是为什么他们不再支持他们所有的旧垃圾代码,以及为什么FBML将在6月停止工作等等。

使用此页面了解新API:http://developers.facebook.com/tools/explorer/

没有“正确的方法”。你可以做任何你需要做的事情来满足你的网站需求,如果这意味着设置一个令牌cookie并缓存一个auth请求20分钟,而不是强迫用户在Facebook的每一个请求上检查令牌,这取决于你。 / p>

答案 1 :(得分:0)

也许您正在寻找this

需要这样的东西:

 <div id="fb-root"></div>
 <script>(function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "http://connect.facebook.net/de_DE/all.js#xfbml=1&appId=<YOUR_APP_ID>";
        fjs.parentNode.insertBefore(js, fjs);
     }(document, 'script', 'facebook-jssdk'));
 </script>