我正在尝试开发一个新的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吗?由于这里不需要我认为它根本不需要。 正确的方法是将此代码置于我的所有文档之上,从而不断确保用户获得授权吗?
谢谢
答案 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>