Database 使用Facebook API解析.com数据存储错误

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

我正在使用Parse.com作为后端构建一个web应用程序。我在试图将来自Facebook用户配置文件API的响应存储在解析数据库中时遇到了一个问题

    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(未找到要更新的对象)
但是,这种方法会,使用正确的数据类型(例如字符串、数字、布尔值)在解析数据库中创建正确的标题(例如,名字、性别、电子邮件等)。没有创建新行。