【问题标题】:Send Firebase Swift Push using NSURLSession HTTP Post使用 NSURLSession HTTP Post 发送 Firebase Swift Push
【发布时间】:2017-01-25 01:49:38
【问题描述】:

我设置了我的应用程序,以便用户在登录时使用他们的用户 UID 订阅主题。每当用户向另一个用户发送消息时,我都会调用下面的函数,希望触发推送。

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()
    }

根据 Firebase 文档,我应该执行此 HTTP 请求:

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 中传递的内容,以便根据他们的示例发送消息。另外,我在哪里定义 Authorization:key=

【问题讨论】:

    标签: swift firebase httprequest firebase-cloud-messaging


    【解决方案1】:

    使用 Firebase 云消息传递发送消息要求您在 Authorization 标头中提供您的服务器密钥。顾名思义,此密钥应仅用于在应用服务器(或您控制的其他基础设施)上运行的代码中。将服务器密钥放入您发送给用户的应用程序中,意味着恶意用户可以使用它代表您发送消息。

    来自Firebase documentation on sending messages to topics(强调我的):

    服务器端,向 Firebase 云消息传递主题发送消息与向单个设备或用户组发送消息非常相似。 应用服务器将 to 键设置为 /topics/yourTopic 之类的值。

    【讨论】:

      猜你喜欢
      • 2013-10-06
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      相关资源
      最近更新 更多