Database 使用Facebook API解析.com数据存储错误
我正在使用Parse.com作为后端构建一个web应用程序。我在试图将来自Facebook用户配置文件API的响应存储在解析数据库中时遇到了一个问题Database 使用Facebook API解析.com数据存储错误,database,facebook-graph-api,object,parse-platform,Database,Facebook Graph Api,Object,Parse Platform,我正在使用Parse.com作为后端构建一个web应用程序。我在试图将来自Facebook用户配置文件API的响应存储在解析数据库中时遇到了一个问题 FB.api('/me', function(response) { // Print Response to Console console.log(response); // Create New Parse Object var Facebook = Parse.Obj
FB.api('/me', function(response) {
// Print Response to Console
console.log(response);
// Create New Parse Object
var Facebook = Parse.Object.extend("Facebook");
var userFacebook = new Facebook();
for(var element in response) {
userFacebook.set(element, response[element]);
}
// Store Data on Parse
userFacebook.save(null, {
success: function(user) {
console.log("User Facebook data saved.");
},
error: function(user, error) {
console.log("Facebook data storage error: " + error.code + " (" + error.message + ")");
}
});
API响应正确打印到控制台,我收到两条错误消息,一条接一条:
未能加载资源:服务器以404状态响应
(未找到)
及
Facebook数据存储错误:101(未找到要更新的对象)
在我的解析帐户中,创建了一个名为“Facebook”的数据库。但是,它只包含响应对象中每个元素的标题(例如,名字、性别、电子邮件等)。它没有包含这些值的新行
我真的被困在这一点上了——任何帮助都将不胜感激
请注意,响应对象的形式如下:
{
"email":"email@example.com",
"first_name":"myFirstName",
"gender":"myGender",
"id":"myID",
"last_name":"myLastName",
"link":"https://www.facebook.com/app_scoped_user_id/myID/",
"locale":"en_US",
"name":"myFullName",
"timezone":-7,
"updated_time":"2014-03-12T04:57:39+0000",
"verified":true
}
每个循环中的对象
for(var element in response) {
userFacebook.set(element, response[element]);
}
FB.api('/me', function(response) {
// Print Response to Console
console.log(response);
// Create New Parse Object
var Facebook = Parse.Object.extend("Facebook");
var userFacebook = new Facebook();
for(var element in response) {
userFacebook.set(element, response[element]);
}
// Store Data on Parse
userFacebook.save(null, {
success: function(user) {
console.log("User Facebook data saved.");
},
error: function(user, error) {
console.log("Facebook data storage error: " + error.code + " (" + error.message + ")");
}
});
解析对象上的“id”列受保护,无法通过API进行设置。在我的例子中,Facebook的API响应包含一个“id”键,它与Parse.Object“id”键冲突
如果遇到相同的问题,只需更改“id”列的名称即可。可以使用以下代码执行此操作:
for(var element in response) {
if(element=="id") {
userFacebook.set("userID", response[element]);
} else {
userFacebook.set(element, response[element]);
}
}
感谢at Parse帮助我解决了这个问题!谢谢你让我参与其中 如果您需要更多信息,请随时询问。谢谢我最初尝试使用response[element]而不是response.element,但出现以下错误:
加载资源失败:服务器响应状态为404(未找到)https://api.parse.com/1/classes/Facebook/myID Facebook数据存储错误:101(未找到要更新的对象)
但是,这种方法会,使用正确的数据类型(例如字符串、数字、布尔值)在解析数据库中创建正确的标题(例如,名字、性别、电子邮件等)。没有创建新行。