Google Cloud Messaging for Android

雲端服務 Push Notification (1)

基本介紹

教學目標

了解各家雲端公司所提供推播服務的功能與費率,以及自建推播通知的服務需要處理的項目。

重點概念

免費方案

雲端公司 Facebook IBM Microsoft Amazon
推播服務 Parse Push Push for Bluemix Azure Notification Hubs Simple Notification Service
每月推播則數 100 萬 100 萬 100 萬 100 萬
每次推播則數 N/A N/A 10 萬 N/A

管理功能

雲端公司 Facebook IBM Microsoft Amazon
推播服務 Parse Push Push for Bluemix Azure Notification Hubs Simple Notification Service
群組功能 有 ( 頻道 ) 有 ( 標籤 ) 有 ( 標籤 ) 有 ( 主題 )
進階條件 N/A N/A N/A
排程推播管理 N/A 有 ( $200 / 月 ) N/A
註冊查詢 N/A 有 ( $200 / 月 )
A/B 測試 N/A N/A 有 ( A/B 測試服務 )

超額付費

雲端公司 Facebook IBM Microsoft Amazon
推播服務 Parse Push Push for Bluemix Azure Notification Hubs Simple Notification Service
萬則推播計價 $0.5 $0.2 $0.01 $0.005

(註: 以上相關資料截至 2014 年 10 月。)

自建服務

自建推播通知的服務需要處理的項目。

  1. 儲存裝置推播識別碼的服務。
  2. 排程推播條件篩選管理的服務。
  3. 提供推播訊息至對應推播伺服器的服務。
    (註: 篩選目標裝置進行即時推播將會是效能處理最主要的瓶頸。)

至於推播服務架構規劃可以參考 「Orchestrating iOS Push Notifications on Google Cloud Platform」 文章。

相關資源

Node.js 推播處理 (2)

基本介紹

教學目標

透過 node-gcm 套件進行 Android 的推播服務。

前置作業

  1. 準備 Google 伺服器專用的 API 金鑰。
  2. 準備開發中行動裝置對應個別 App 的推播專用之 Registration Id 。

套件安裝

1
npm install node-gcm --save

使用教學

建立

建立 Android 推播服務需要設定基本參數。

1
2
3
4
5
6
7
8
9
10
11
12
var gcm = require("node-gcm");
var payload = new gcm.Message({
delayWhileIdle: false,
message gets sent to the client.
collapseKey: "demo",

data: {
alert: "Alert!"
}
});
payload.addDataWithObject({
id: 1
});

準備

建立準備發送播放的 Registration Id 清單,實務上會從資料庫中取得特定 App 發送推播的清單。

1
2
var registration_ids = [];
registration_ids.push("Registration Id");

發送

發送之前必須使用 Google 伺服器專用的 API 金鑰,以及設定正確的參數,接著將相關資訊傳送至 Android 專用的推播伺服器 (GCM) ,就能進行推播服務。

1
2
3
4
5
var gcm_connection = new gcm.Sender("Google 伺服器專用的 API 金鑰");
gcm_connection.send(payload, registration_ids, 4, function(err, result) {
if (err) { throw err };
console.log(result);
});

相關資源