我想提取用户的facebook-id并将其放入php变量。
我正在使用的代码来自facebook教程视频,它的工作原理。我只是想在php代码中使用用户ID。
这是我的代码:
<form action="" method="post">
<div id="user">
Name: <input name="name" size="27" /><br />
<fb:login-button length="long" onlogin="update_user_box();"></fb:login-button>
</div>
<textarea name="comment" cols="30" rows="5"></textarea><br />
<input type="submit" value="Submit comment" />
</form>
<script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>
<script type="text/javascript">
function update_user_box() {
var user_box = document.getElementById("user");
user_box.innerHTML =
"<span>"
+"<fb:profile-pic uid='loggedinuser'></fb:profile-pic>"
+"Welcome, <fb:name uid='loggedinuser' useyou='false'></fb:name>. "
+"You are signed in with your Facebook account."
+"<fb:uid uid='loggedinuser'></fb:uid>"
+"<a href='#' onclick='FB.Connect.logout(function() { reload(); }); return false;' ><img id='fb_logout_image' src='http://static.ak.fbcdn.net/images/fbconnect/logout-buttons/logout_small.gif' border='0' alt='Connect'/></a>"
+"</span>";
FB.XFBML.Host.parseDomTree();
}
FB.init("API-KEY","xd_receiver.htm");
FB.ensureInit ( function () {
FB.Connect.ifUserConnected(update_user_box);
});
</script>
答案 0 :(得分:0)
您无法将变量从JavaScript传递给PHP; JavaScript是一种客户端语言(即它由浏览器执行),而PHP是服务器端语言(即它由服务器执行)。
使用XMLHttpRequest(通常称为AJAX)将数据从JavaScript传递到PHP可以将HTTP请求发送到PHP脚本,但我不确定这是你想要的。
答案 1 :(得分:0)
一旦用户登录(通常使用javascript FB.login()),就会设置一个cookie。 PHP可以访问该cookie。查看以下PHP代码(来自http://developers.facebook.com/docs/guides/web#login):
<?php
define('FACEBOOK_APP_ID', 'your application id');
define('FACEBOOK_SECRET', 'your application secret');
function get_facebook_cookie($app_id, $application_secret) {
$args = array();
parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
ksort($args);
$payload = '';
foreach ($args as $key => $value) {
if ($key != 'sig') {
$payload .= $key . '=' . $value;
}
}
if (md5($payload . $application_secret) != $args['sig']) {
return null;
}
return $args;
}
$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);
?>
然后你可以获得$ cookie('uid'),并在你需要的地方使用它。
我上面链接的页面应该包含有关将JavaScript SDK与PHP结合使用的所有信息。
答案 2 :(得分:0)
你应该包含php的facebook客户端库,然后你可以轻松获得这样的用户ID:
include ('facebook_client_library.php');
$facebook = new facebook('API', 'SECRET');
$fbid = $facebook->get_loggedin_user();
echo $fbid;
或试试这个javascript(不确定):
alert(FB.Facebook.apiClient.get_session().uid);
答案 3 :(得分:0)
使用数组,检查我的问题Facebook Registration Connect它有我使用的代码然后只需添加
$fuid = $response["registration"]["user_id"];
如果这不起作用,请尝试
$fuid = $response["user_id"];
希望我得到了帮助, 布拉德