解析:失败:未调用成功/错误

时间:2014-12-09 06:43:26

标签: ios oauth parse-platform cloud

我正在尝试通过Parse通过OAuth对我的社交媒体帐户进行身份验证,并且它可以正常进行身份验证,但我仍然会收到失败但未成功/错误被调用;我的代码在下面,有人可以帮忙吗?

Parse.Cloud.define("createNewNetwork", function(request, response) {
    Parse.Cloud.useMasterKey();

    //console.log(request.user.id);
    userHasRole(request.user.id, 'AllUsers').then(function(hasRole){
        if (hasRole){
            var Network = Parse.Object.extend("Network");

            var query = new Parse.Query(Network);
            query.equalTo("userId", request.params.userId);
            query.equalTo("owner", request.user);

            query.first({useMasterKey:true}).then(function(network) {
                var newNetwork;

                if (!network) {
                    newNetwork = new Network();

                    var custom_acl = new Parse.ACL();
                    custom_acl.setWriteAccess(request.user, true);
                    custom_acl.setPublicReadAccess(true);
                    newNetwork.setACL(custom_acl);

                    newNetwork.set("userId", request.params.userId);
                    newNetwork.set("followingCount", request.params.followingCount);
                    newNetwork.set("owner", request.user);
                    newNetwork.set("userData", request.params.userData);
                    newNetwork.set("networkName", request.params.networkName);
                    newNetwork.set("screenName", request.params.screenName);
                } else {
                    newNetwork = network;
                }
                    newNetwork.set("tokenExpired", false);
                //console.log(request.params.oAuthData["access_token"]);
                if (request.params.networkName == "facebook-page") {
                    Parse.Cloud.httpRequest({
                        url: 'https://graph.facebook.com/v2.1/oauth/access_token?grant_type=fb_exchange_token&client_id=**************&client_secret=***************&fb_exchange_token='+request.params.oAuthData["access_token"],
                        success: function(httpResponse2) {
                            //console.log(httpResponse2);
                            if (httpResponse2.status == 200) {
                                var data = {};
                                data["access_token"] = httpResponse2.text.substring(13);

                                newNetwork.save({oAuthData : data}, {
                                    success: function(savedNetwork) {
                                        response.success(savedNetwork);
                                    },
                                    error: function(error) {
                                        response.error(error);
                                    }
                                });
                            } else {
                                response.error("invalid token");
                            }
                        },
                        error: function(httpResponse2) {
                            console.log(httpResponse2);
                            response.error('Request failed with response code ' + httpResponse2.status);
                        }
                    });
                } else {
                    newNetwork.save({oAuthData : request.params.oAuthData}, {
                        success: function(savedNetwork) {
                            response.success(savedNetwork);
                        },
                        error: function(error) {
                            response.error(error);
                        }
                    });
                }   
            });
        } else {
            response.error("not in role");
        }
    });
});

Parse.Cloud.define("fetchNetworks", function(request, response) {

    var attributesToHide = ["oAuthData"];

    Parse.Cloud.useMasterKey();

    userHasRole(request.user.id, 'AllUsers').then(function(hasRole){
        if (hasRole){
            var Network = Parse.Object.extend("Network");
            var query = new Parse.Query(Network);
            query.descending("followingCount");
            var user = new Parse.User();
            user.id = request.params.userToFetch;

            user.fetch({}).then(function(user) {
                query.equalTo("owner", user);

                query.find().then(function(networks) {
                    networks.forEach(function(network) {
                        attributesToHide.forEach(function(attr) {
                         delete network.attributes[attr];
                        });
                     });
                    return response.success(networks);
                });
            });
        } else{
          response.success({super: false});
        }
      });
});

1 个答案:

答案 0 :(得分:0)

行号 - 101 - 删除返回应该有效。