エクスポート (0) 印刷
すべて展開

gcm オブジェクト

更新日: 2013年6月

Windows Azure のモバイル サービスのサーバー スクリプトで Google Cloud Messaging (GCM) の機能を公開します。

gcm オブジェクトには、次のメソッドがあります。

send

特定のデバイスに通知を送信します。

構文

gcm.send(registrationId, payload, options)

パラメーター

 

パラメーター 説明

registrationId

メッセージを受信する 1 つのデバイスの登録 ID か、複数のデバイスの登録 ID の配列を指定します。

payload

通知ペイロードが含まれている必須のオブジェクト。これには次のようなキーと値のペアを含む単純なテキスト文字列またはオブジェクトを含めることができます。


{
    symbol: 'msft',
    price: '26.78',
    lastClose: '26.20'  
}

値は文字列である必要があります。プロパティ名にはいくつかの制約事項があります。その概要については、ここを参照してください。JSON にシリアル化されるペイロードの合計サイズは 4 KB を超えることはできません。

options

次の形式で成功ハンドラー関数とエラー ハンドラー関数を指定する省略可能なオブジェクト。


{
    success: function(response) {
        // handle success here.
    },
    error : function(err) {
        // handle the error here.
    }
}

GCM が要求を正常に受け入れた場合は、成功のコールバックが発生します。ただし、すべての通知が配信されたことを意味するわけではありません。処理の状態について完全に把握するためには、アプリケーションで応答コールバックのパラメーターを処理する必要があります。response パラメーターには、結果の処理に役立つ次の 2 つのプロパティが含まれています。

  • response.invalidIds - 有効ではなくなった登録 ID の配列。アプリケーションがこれらの ID にそれ以上通知を送信しないようにする必要があります。そうしないと、GCM によってブロックされる可能性があります。

  • response.updatedIds - 更新された登録 ID に対する要求で指定された登録 ID のマップ。アプリケーションは、さらに通知を送信する際には、元の ID ではなく更新された ID を使用する必要があります。GCM は、デバイスに関連付けられた登録 ID を更新することもあります。これは、このような更新について送信元に通知するために使用されるメカニズムです。

戻り値

未定義です。

sendAdvanced

単純な send メソッドを超える機能を使用して GCM の情報を要求するために使用されます。次に例を示します。

  • GCM サーバーがビジー状態の場合は、自動的に通知の送信を再試行します。

  • 通知を一度に配信できない場合は、複数の通知を 1 つにまとめます。

  • デバイスがアクティブな場合にのみ、通知を送信します。

  • デバイスがオフラインの間、GCM サーバーに通知を格納するために TTL を指定します。

  • 特定のパッケージ名を持つアプリケーションに配信を制限します。

  • 実際にデバイスに配信せずに GCM のサンドボックスに対して要求を発行します。

構文

gcm.sendAdvanced(content, retryCount, options)

パラメーター

 

パラメーター 説明

content

GCM に送信するための要求オブジェクトを含む必須のオブジェクト。次にオブジェクト例を示します。


{
   registration_ids : ['one or more IDs'],
   data : {
      message:  'hello GCM'
  },
  // Other properties such as 'collapse_key', 'delay_while_idle', 'time_to_live', 'restricted_package_name', and 'dry_run'
}

このオブジェクトのプロパティの形式はここで指定されています。

retryCount

GCM サーバーがステータス コード 5xx で応答した場合に再試行する要求の回数を示す負以外の整数。モジュールは GCM から送信された Retry-After HTTP 応答ヘッダーに基づいて必要なバックオフ ポリシーを実装します。既定値は 0 です。

options

成功ハンドラー関数とエラー ハンドラー関数を指定する省略可能なオブジェクト。上記の send メソッドの詳細な説明を参照してください。

戻り値

未定義です。

サーバー スクリプトでは、gcm オブジェクトを push オブジェクトから取得します。完全な例については、「モバイル サービスでのプッシュ通知の使用」を参照してください。

次の例では、新しいアイテムがテーブルに挿入されたときに、send メソッドを呼び出して、特定のデバイスにテキスト通知を送信します。

function insert(item, user, request) {
    request.execute({
        success: function() {
            // Write to the response and then send the push notification.
            request.respond();
            push.gcm.send(item.channel, item.text, {
                   success: function(response) {
                       console.log('Push notification sent: ', response);
                }, error: function(error) {
                       console.log('Error sending push notification: ', error);
                }
            });
        }
    });
}

次の例では、新しいアイテムがテーブルに挿入されたときに、sendAdvanced メソッドを呼び出して、特定のデバイスにテキスト通知を送信します。また、必要に応じて 3 回再試行します。

function insert(item, user, request) {
    request.execute({
        success: function() {
            // Write to the response and then send the push notification.
            request.respond();
            push.gcm.sendAdvanced({
                registration_ids: ['27'],
                data: {
                    message: 'hello GCM'
                },
            }, 3, {
                success: function(response) {
                    console.log('Push notification sent: ', response);
                },
                error: function(error) {
                    console.log('Error sending push notification: ', error);
                }
            });
        }
    });
}

表示:
© 2014 Microsoft