2016-08-03 24 views
-1

Ich habe versucht, eine HTTP-Post-Anfrage an den Firebase Cloud Messaging Server zu senden. Dies ist der Code, mit dem ich gearbeitet habe, und ich bekomme die folgende Antwort. Laut den Firebase-Dokumenten sollte die Nachricht gesendet worden sein, außer dass sie nicht angezeigt wird, wenn ich sie an meine Geräte sende, nicht im Hintergrund oder in didReceiveRemoteNotification. Warum sollte die Nachricht nicht erscheinen?HTTP-Post in Swift

Body:Optional({"multicast_id":9176652856657890066,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1470318910131254%0753194407531944"}]}) 

Error: nil 
Success: Optional(1) 

Code unten:

let url = NSURL(string: "https://fcm.googleapis.com/fcm/send")! 
     let session = NSURLSession.sharedSession() 

     let request = NSMutableURLRequest(URL: url) 
     request.HTTPMethod = "POST" 
     request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData 
     let dictionary = ["notification":["title":"BBM","text": message,"project_id": "marketplace-management","registration_id":token!]] as AnyObject 
     do { 
      try request.HTTPBody = NSJSONSerialization.dataWithJSONObject(dictionary, options: .PrettyPrinted) 
     } catch {} 
     request.addValue("application/json", forHTTPHeaderField: "Content-Type") 
     request.addValue("key=myKey", forHTTPHeaderField: "Authorization") 

     let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in 
      print("Response: \(response)") 
      let strData = NSString(data: data!, encoding: NSUTF8StringEncoding) 
      print("Body: \(strData)") 
      print("Error: \(error)") 
      var json = NSDictionary() 
      do { json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as! NSDictionary } catch {} 
      let parseJSON = json 
      let success = parseJSON["success"] as? Int 
      print("Success: \(success)") 
     }) 
     task.resume() 
+1

„es scheint nicht zu funktionieren“ - Bearbeiten Sie Ihre Frage, die genauen Fehlermeldungen enthalten, die Sie erhalten haben. Zeigen Sie uns auch, was die "Antwort" war (insbesondere der Statuscode hilft bei der Diagnose der Vorgänge). – Rob

Antwort

2
let dictionary = ["notification":["title":"","text": message,"project_id": "myProjectID","to":token]] 
    print(dictionary)//["notification": ["title": "", "project_id": "myProjectID", "to": "12", "text": "message"]] 
    do { 
     try request.HTTPBody = NSJSONSerialization.dataWithJSONObject(dictionary, options: .PrettyPrinted) 
    } catch {}