我的主页是index.php
. 在这里,我执行用户登录,然后重定向到url.php
使用 ajax 请求。现在用户可以移动到不同的页面。
我需要这些页面上的当前用户 facebook id。我怎么才能得到它?
登录.php
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: '<?php
echo $appId;
?>',
cookie: true,
xfbml: true,
// channelUrl: '<?php
echo $return_url;
?>channel.php',
oauth: true}
);
};
(function() {
//alert("1");
var e = document.createElement('script');
e.async = true;
e.src = document.location.protocol +'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
function CallAfterLogin(data,callback){
FB.login(function(response) {
if (response.status === "connected")
{
LodingAnimate();
FB.api('/me?fields=movies,email,name', function(mydata) {
$.post('movies_db.php',{'myd':a, name: name, email: email, myid:myid}, function(data)
{
$.ajax({
url:'url.php'
,async: true
,type : 'POST'
,cache: false
,data : 'myid=' + myid
,dataType: 'html'
,success: function(data){
$('body').html(data);
FB.XFBML.parse();
}
}
我以这种方式尝试过:在 url.php/ 或我想要获取会话信息的任何页面上
$id= $_SESSION['fb_<appID>_user_id'];
echo "X is $id";
另一个使用 php sdk 的尝试:
require_once("facebook.php"); //given correct path
$config = array();
$config['appId'] = '1788xxxxxx2';
$config['secret'] = '390c04c60xxxxxxxxx68aca44';
$facebook = new Facebook($config);
$appId = $facebook->getAppId(); //gives correctly
$uid = $facebook->getUser(); //always 0
echo "$uid";
再试一次:
<?php
session_start();
print $_SESSION['fb_<myAppID>']; //prints correct
//print $_SESSION['fb_<userID>'];
print $_SESSION['fb_<myAppID>_user_id'] = '<user_id>'; //does not print anything
//echo "id :$x";
?>
没运气。还有什么想法吗?或者这里的错误在哪里?