未捕获的类型错误:无法读取未定义的图形 API 的属性“名称”[2.5]
Uncaught TypeError: Cannot read property 'name' of undefined Graph API[2.5]
我正在使用Facebook Graph API进行2次API调用。第一个 API 调用返回使用同一 Web 应用程序的朋友列表,第二个 API 调用返回登录用户的公共信息。我在包含第一个 API 调用的函数的 for 循环中遇到了一个问题。每当我尝试读取响应中的数据时,我都会收到错误。
Uncaught TypeError: Cannot read property 'name' of undefined
我的 JavaScript SDK 代码..
function facebookSignIn() {
FB.login(function(response) {
// handle the response
console.log("Response goes here!");
// retrieve the list of friends to whom message was sent
FB.api(
'/me/friends', function (response) {
if (response && !response.error) {
/* handle the result */
console.log("Response for /me/friends goes here!");
console.log(JSON.stringify(response.data));
console.log(JSON.stringify(response.data[0].name));
for(var i =0;i<=response.data.length;i++){
var friend_name = response.data[i].name;
var friend_id= response.data[i].id+"@fb";
addFriendSetValues(friend_name, '-', friend_id, loginemail);
addFriendDbCreate();
}
}
}
);
FB.api('/me?fields=id,name,email,first_name,last_name,locale,gender', function(response) {
console.log('Successful login for: ' + response.name+" "+response.id+" "+response.email);
loginpassword = response.id;
loginemail = response.email;
loginDbCreate(); //this function is in the script_admin_v2.js
});
}, {scope: 'email,public_profile,user_friends'});
}
控制台输出..
Response for /me/friends goes here!
[{"name":"Friend A","id":"10153492155956028"},{"name":"Friend B","id":"117431545310469"}]
"Friend A"
Successful login for: Lucy 951425764944314 lucy@abc.com
all.js:86 Uncaught TypeError: Cannot read property 'name' of undefined
即使我能够打印 response.data[0].name) 的值,当我在 for 循环中用 i 替换零时,我得到未捕获的错误。知道我哪里出错了吗??
我认为
,你需要改变
for(var i =0;i<=response.data.length;i++){
var friend_name = response.data[i].name;
var friend_id= response.data[i].id+"@fb";
addFriendSetValues(friend_name, '-', friend_id, loginemail);
addFriendDbCreate();
}
自
for(var i =0;i<=response.data.length;i++){
if (response.data.hasOwnProperty(i)) {
var friend_name = response.data[i].name;
var friend_id = response.data[i].id + "@fb";
addFriendSetValues(friend_name, '-', friend_id, loginemail);
addFriendDbCreate();
}
}
相关文章:
- 技术测试HTML中非常奇怪的名称属性
- Object.create()只读名称属性
- 选中复选框时插入名称属性
- 在HTML5中是否可以有多个数据{名称}属性
- 如何按名称(属性值)获取拓扑的几何图形
- 如何检索上一个属性的名称属性
- 正在查找是否存在重复的名称属性
- 如何在“选项”标签上获取“名称”属性
- 重写命名函数的名称属性
- 未获取名称属性
- 角度.js清理器从锚点中删除名称属性
- j查询使用 [] 选择名称属性
- 使用角度时表单元素是否需要名称属性
- AngularJS指令将名称属性绑定到模板元素
- 获取选择框的名称属性
- 函数对象的名称属性是什么
- 是否可以将PHP代码嵌入HTML标签的类或名称属性中
- 在 ng-repeat 中验证数组名称属性
- JQuery:处理名称属性
- 在 JQuery 中克隆时更改名称属性