Javascript Facebook FQL返回NaN值
在这个脚本中Javascript Facebook FQL返回NaN值,javascript,facebook,facebook-fql,facebook-apps,Javascript,Facebook,Facebook Fql,Facebook Apps,在这个脚本中 function fql(){ FB.api('/me', function(response) { var query = FB.Data.query('select uid, name, email from user where uid={0}', response.id); query.wait(function(rows) { documen
function fql(){
FB.api('/me', function(response) {
var query = FB.Data.query('select uid, name, email from user where uid={0}', response.id);
query.wait(function(rows) {
document.getElementById('name').innerHTML =
'Your name: ' + rows[0].name + "<br />" +
+ rows[0].email + "<br />" + rows[0].uid;
});
});
}
函数fql(){
FB.api('/me',函数(响应){
var query=FB.Data.query('选择uid、名称、来自用户的电子邮件,其中uid={0}',response.id);
query.wait(函数(行){
document.getElementById('name').innerHTML=
“您的姓名:”+行[0]。姓名+“
”+
+行[0]。电子邮件+“
”+行[0]。uid;
});
});
}
函数返回name和pic,但电子邮件值为NaN。应用程序需要基本数据和电子邮件(它是在应用程序属性/Auth对话框中设置的),但我无法获取用户电子邮件。
当我在Facebook测试控制台中测试此查询时,我得到了正确值的电子邮件字段。检查在测试控制台和您的站点上是否使用相同的应用程序id,并确保用户已向您的应用程序授予
电子邮件
权限
这可以通过简单的图形API调用完成:
FB.api('/me/permissions', function(response){
if (response && response.data){
var userPermissions = response.data.shift();
if (userPermissions.email){
alert('User is granted email permission');
} else {
alert('User is NOT granted email permission');
}
} else {
// No response or results from the Graph API
}
});
有几件事你应该注意
FB.getUserID()
),在FQL
中使用me()
来引用当前用户FB.Data.*
和query的用法。使用以下命令等待
:
FB.api('/fql', {q:'YOUR_FQL_QUERY_HERE'}, function(response){
var rows = response.data;
});
在您的情况下,在不使用FQL的情况下,Graph API调用可能会收到相同的结果:
FB.api('/me', {fields: 'id,name,email'}, function(response){
// response -> {id: UID, name: 'User Name', email: 'user@email.dz'}
console.log(response);
});