Facebook FQL returns NaN value
Facebook FQL returns NaN value
在此脚本中
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;
});
});
}
函数返回名称和图片,但电子邮件值为NaN。应用程序需要基本数据和电子邮件(它是在应用程序属性/Auth对话框中设置的),但我无法获取用户电子邮件。当我在Facebook测试控制台中测试这个查询时,我得到了具有正确值的电子邮件字段。
请检查在测试控制台和您的站点中是否使用相同的应用程序id,并确保用户已授予您的应用程序email
权限!
这可以通过简单的Graph 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.Data.*
不见了它已被弃用,未记录,不应再使用!它从JavaScript SDK代码中消失只是时间问题- 您只是不希望额外的调用只是为了计算当前用户的id(大多数情况下,您已经拥有了它,只需检查
FB.getUserID()
),在FQL
中,使用me()
来指代当前用户
用重写FB.Data.*
和query.wait
的用法
FB.api('/fql', {q:'YOUR_FQL_QUERY_HERE'}, function(response){
var rows = response.data;
});
在您的情况下,Graph API调用可能会在不使用FQL:的情况下收到相同的结果
FB.api('/me', {fields: 'id,name,email'}, function(response){
// response -> {id: UID, name: 'User Name', email: 'user@email.dz'}
console.log(response);
});
相关文章:
- 在ember/handlers中使用value和valueBinding有什么区别
- JavaScript NaN equvialence
- 如何为排除无穷大和NaN的数字声明Flow类型
- 为什么我在这个javaScript代码中使用NaN
- 如何防止Math.max()返回NaN
- 需要url导航从DropDown Value onClick按钮传递url变量
- 用Javascript在下拉列表中选择VALUE选项
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- 函数将输出nan而不是数字,为什么
- HTML Value finding
- Javascript GetElementByID has no value
- 如何获取文本框组的值,并使用jquery将它们放入(key:Value)数组中
- .value返回字符串,直到我将其保存到变量
- jquery中出现NaN错误.已经尝试过ParseInt,但仍然不起作用
- 尝试求和时,在我的表的页脚中返回$NaN
- 我的jquery中出现NaN错误
- 金额结果为NaN
- JavaScript check value
- Facebook FQL returns NaN value
- JavaScript returning NaN value