ユーザがログインするときにユーザUIDでトピックを購読するようにアプリケーションをセットアップします。ユーザーが別のユーザーにメッセージを送信するたびに、私はそのプッシュをトリガーしたいと思っている以下の機能を呼び出すことになります。私は、このHTTPリクエストを行うことになっていますFirebaseドキュメントに基づいてNSURLSession HTTP Postを使用してFirebase Swift Pushを送信します。
func sendPushNotification(toUser: String, message: String) {
let urlString = "https://fcm.googleapis.com/fcm/send"
let topic = "\topic\\(toUser)"
let url = NSURL(string: urlString)!
let paramString = "to=\(topic)"
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.HTTPBody = paramString.dataUsingEncoding(NSUTF8StringEncoding)!
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { (data, response, error) in
do {
if let jsonData = data {
if let jsonDataDict = try NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.AllowFragments) as? [String: AnyObject] {
NSLog("Received data:\n\(jsonDataDict))")
}
}
} catch let err as NSError {
print(err.debugDescription)
}
}
task.resume()
}
:
Send to a single topic:
https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{
"to": "/topics/foo-bar",
"data": {
"message": "This is a Firebase Cloud Messaging Topic Message!",
}
}
私は彼らの例のオフに基づいて、送信するメッセージのためのparamStringに渡すものを見るために苦労しています。また、認可を定義する場所は次のとおりです。key =