2016-08-02 144 views
0

我的應用程序現在已經設置了Firebase通知,當我發送消息時,消息會發送給我的應用程序的所有用戶。 (我目前通過Firebase控制檯發送消息)。我想要另一種發送不涉及Firebase控制檯的推送通知的方式,並且我相信HTTP Post是一種簡單的方法。如何使用HTTP Post遠程發送推送通知?Firebase通知:通過HTTP發送消息Post

回答

2

,因爲編輯的留言: 請務必做到包括服務器密鑰到您的客戶端。有很多方法可以讓「找不到那麼好的人」找到它並做一些事情...... 實現這一目標的正確方法是讓您的客戶指示您的應用程序服務器發送通知。

您必須發送HTTP-Post到Google-API-Endpoint。

您需要以下標題:

Content-Type: application/json 
Authorization: key={your_server_key} 

您可以在火力地堡項目中獲得的youre服務器密鑰。

HTTP-POST-內容:樣品

{ 
    "notification": { 
     "title": "Notification Title", 
     "text": "The Text of the notification." 
    }, 
    "project_id": "<your firebase-project-id", 
    "to":"the specific client-device-id" 
} 

示例設備ID:

cc6VGMjpIiA:APA91bGLpm5Z2p0NNh7nxttCTVd1tTsL2jObDaS9U8G1YjDjkpwkBlRLjU89ns4ujQ7rFU1Z2NshpUAX2RiQiIDKhHJdB0RtSS3H6nTT-lGEkIpzVtVzJpLIVqzSVbRjmyYlxD3BSLZl 

則必須將此請求發送到https://fcm.googleapis.com/fcm/send。 截至目前,無法使用API​​向所有設備發送通知。您爲擁有以使用Firebase控制檯。


我喜歡使用Chrome插件「郵遞員」發送API請求,因爲您可以保存您的HTTP請求。它非常舒適。

你也可以使用捲曲。

curl 
-X POST 
-d "{ "notification": { 
    "title": "Notification Title", 
    "text": "The Text of the notification." 
    }, 
    "project_id": "<your firebase-project-id", 
    "to":"the specific client-device-id" 
}" 
-H "Content-Type: application/json" 
-H "Authorization: key={your_server_key}" 
https://fcm.googleapis.com/fcm/send 
+0

這確實是一個很好的使用FCM進行POST消息的例子。請注意,由於此方法需要使用您的FCM服務器密鑰,因此您不應在客戶端設備上運行此代碼。在客戶端中暴露您的服務器密鑰可能會使惡意用戶找到您的密鑰並以您的名義發送消息。請參閱http://stackoverflow.com/questions/37435750/how-to-send-device-to-device-messages-using-firebase-cloud-messaging –

+0

是的 - 這是一種誤導。我編輯我的文章相應:) – Hannes

+0

感謝您的答案!如果我想通過Swift代碼發送這個請求,我會怎麼做呢? – Bawpotter