Uncaught TypeError: Cannot read property 'name' of undefined Graph API[2.5]
Uncaught TypeError: Cannot read property 'name' of undefined Graph API[2.5]
我正在使用 Facebook Graph API 拨打 2 API 电话。第一次 API 调用 returns 使用同一网络应用程序的好友列表,第二次 API 调用 returns 已登录用户的 public 信息。我在包含第一个 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 循环中,我得到了未捕获的错误。知道我哪里出错了吗??
我觉得,你需要改变
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();
}
}
我正在使用 Facebook Graph API 拨打 2 API 电话。第一次 API 调用 returns 使用同一网络应用程序的好友列表,第二次 API 调用 returns 已登录用户的 public 信息。我在包含第一个 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 循环中,我得到了未捕获的错误。知道我哪里出错了吗??
我觉得,你需要改变
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();
}
}