根据以下链接中的文档,如果用户将与表单进行交互,我们可以获取用户ID。
http://wiki.developers.facebook.com/ind ... d_Policies
“如果查看用户与选项卡交互(如提交表单,执行导致AJAX加载新内容的操作,或遵循在选项卡上加载的相对URL),则将该用户的UID发送到应用程序作为fb_sig_user参数,配置文件所有者的用户ID作为fb_sig_profile_user参数发送。仅当用户授权应用程序时,才会发送查看用户的会话密钥密钥。“
在我的粉丝页面标签中,我有一个AJAX表单,用户可以提交一些值..现在我也需要用户ID ..我怎么能得到这个..
我尝试使用$ _POST ['fb_sig_user']在我的AJAX提交页面中获取值但没有成功..任何人都可以帮我这个请...
答案 0 :(得分:5)
除非您在Facebook的ajax函数中对此用户进行身份验证,否则您将无法使用$_POST['fb_sig_user']
获取用户的ID:
ajax.requireLogin = true;
例如,我正在检索它:
function do_ajax(url, div_id)
{
document.getElementById('poller_waitMessage').setStyle('display', 'block');
var ajax = new Ajax();
ajax.responseType = Ajax.FBML;
ajax.onerror = function(error)
{
new Dialog().showMessage("Error:", "Some communication error occured, Please reload the page.","Ok");
};
ajax.ondone = function(data)
{
document.getElementById('poller_waitMessage').setStyle('display', 'none');
document.getElementById(div_id).setInnerFBML(data);
}
ajax.requireLogin = true; // <----- this is important
ajax.post(url);
}
答案 1 :(得分:1)
我很高兴为以前的应用程序使用表单变量fb_sig_profile_user,并且在上周开发新应用程序时,该变量无处可寻。
搜索了几天,我即将放弃,然后找到答案:
ajax.requireLogin = true;
我理解FB关心隐私和所有这些,但他们确实需要在取消之前宣布这些变化。
百万谢谢!