2016-07-30 48 views
1

更新:我得到這個錯誤,因爲Parse-Server 2.2.17有一個錯誤。我修復它回到2.2.16。解析推送通知雲代碼錯誤?

有誰知道我爲什麼得到這個錯誤?這是我的雲代碼:

`Parse.Cloud.define( 「消息」,功能(請求,響應){

變種pushQuery =新Parse.Query(Parse.Installation);

Parse.Push.send({ 
    where: pushQuery, 
    data: { 
    alert: "New Event Added", 
    sound: "default" 
    } 
    },{ 
    success: function(){ 
     console.log("Push Sent!") 
    }, 
    error: function (error) { 
     console.log(error) 
    }, 
    useMasterKey: true 

}); });`

以下是錯誤我得到:enter image description here

然後這是我打電話的代碼:`PFCloud.callFunctionInBackground( 「消息」,withParameters:無){(對象,在

  if error == nil { 

       print("Success!") 

      } else { 

       print(error) 
      } 
     } 

index.js錯誤):enter image description here `

回答

1

可否請您嘗試以下代碼:

var query = new Parse.Query(Parse.Installation); 
// query condition (where equal to .. etc.) 

var payload = { 
    alert: "New Event Added", 
    sound: "default" 
}; 





Parse.Push.send({ 
    where: query, // Set our Installation query 
    data: payload 
}, { 
     success: function() { 

     }, 
     error: function (error) { 
      // Handle error 
     } 
    }); 

請注意,如果你想添加useMasterKey你需要插入內關閉,我刪除useMasterKey但對我來說的作品沒有useMasterKey

的useMasterKeyVersion應該看起來像下面這樣:

Parse.Push.send({ 
    where: query, // Set our Installation query 
    data: payload 
}, 
{ 
    useMasterKey: true 
}, 
{ 
    success: function() { 

    }, 
    error: function (error) { 
     // Handle error 
    } 
}); 

的承諾版本(根據最佳實踐):

Parse.Push.send({where: query,data: payload}) 
.then(function(){ 
    // success 
},function(error){ 
    // error .. 
}); 

更新

通過查看您的index.js文件,它看起來像您沒有將Facebook oauth添加到您的3方認證登錄中。 所以你需要添加以下內容:

oauth: { 
    facebook: { 
    appIds: "FACEBOOK APP ID" 
    } 
} 

下方的emailAdapter配置和內部「的Facebook應用程序ID」把你在Facebook的開發人員創建的應用程序ID

+0

這段代碼也不適用於我。我在關於「無法設置標題」的問題中發佈的日誌中仍然出現相同的錯誤。你能告訴我你使用什麼版本的解析?如果您在heroku中有任何設置,您必須使其工作?我使用的是最新版本的解析,我在我的index.js文件中也使用了OneSignal Push Adapter。但在使用推送適配器之前,我得到了這種錯誤方式。 –

+0

我正在使用最新版本的解析2.2.17。你可以請嘗試打電話給回覆。成功塊中的success()和錯誤塊中的response.error(),並查看回調是否被調用? –

+0

好的,我也使用該版本。你有什麼其他的建議可能是什麼問題?或者我能做些什麼來解決它?在更新Parse之前,我在我的.p12文件中發現一個錯誤,說它無法識別。即使它在那裏。然後我更新了終端上的解析,並且錯誤消失了。但是自從我收到有關在發送之後無法設置標題的錯誤之後,我就開始了。 –

0

在main.js把這個代碼

// SEND PUSH NOTIFICATION 
Parse.Cloud.define("push", function(request, response) { 

    var user = request.user; 
    var params = request.params; 
    var someKey = params.someKey 
    var data = params.data 

    var recipientUser = new Parse.User(); 
    recipientUser.id = someKey; 

    var pushQuery = new Parse.Query(Parse.Installation); 
    pushQuery.equalTo("userID", someKey); 


    Parse.Push.send({ 
    where: pushQuery, // Set our Installation query 
    data: data 
    }, { success: function() { 
     console.log("#### PUSH OK"); 
    }, error: function(error) { 
     console.log("#### PUSH ERROR" + error.message); 
    }, useMasterKey: true}); 

    response.success('success'); 
}); 



// SEND PUSH NOTIFICATION FOR ANDROID 
Parse.Cloud.define("pushAndroid", function(request, response) { 

    var user = request.user; 
    var params = request.params; 
    var someKey = params.someKey 
    var data = params.data 

    var recipientUser = new Parse.User(); 
    recipientUser.id = someKey; 

    var pushQuery = new Parse.Query(Parse.Installation); 
    pushQuery.equalTo("userID", someKey); 


    Parse.Push.send({ 
    where: pushQuery, // Set our Installation query 
    data: { 
     alert: data 
    } 
}, { success: function() { 
     console.log("#### PUSH OK"); 
    }, error: function(error) { 
     console.log("#### PUSH ERROR" + error.message); 
    }, useMasterKey: true}); 

    response.success('success'); 
}); 

在Xcode項目做這樣的發送推送通知

 // Send Push notification 
     let pushStr = "@\(PFUser.current()![USER_USERNAME]!) | \n\(self.lastMessageStr)" 


     let data = [ "badge" : "Increment", 
        "alert" : pushStr, 
        "sound" : "bingbong.aiff", 

      ] as [String : Any] 
     let request = [ 
      "someKey" : self.userObj.objectId!, 
      "data" : data 

      ] as [String : Any] 
     PFCloud.callFunction(inBackground: "push", withParameters: request as [String : Any], block: { (results, error) in 
      if error == nil { 
       print ("\nPUSH SENT TO: \(self.userObj[USER_USERNAME]!)\nMESSAGE: \(pushStr)\n") 
      } else { 
       print ("\(error!.localizedDescription)") 
      } 
     }) 
+0

請解釋一下你寫的一些代碼。你的幫助是值得讚賞的,但如果OP知道你的代碼的細節,它會更有意義 –