Webプッシュ通知サービス「Push7」の使い方や
活用方法をご提案します。

APIによるパラメータ操作

パラメータAPIの利用制限について
パラメータ操作のためのAPIは、現在エンタープライズプランに限定して開放されています。
エンタープライズプランについての詳細はこちらからお問い合わせください。

はじめに

Push7では、購読者にパラメータを付与することができ、アプリケーションがWebプッシュ通知を送る際にそのパラメータを用いて柔軟な通知を送ることができます。

例えば、ユーザDBと連携してユーザ個別のWebプッシュ通知を送ったり、メディアサイトなどではカテゴリ毎にパラメータを付与して各カテゴリ別にユーザにWebプッシュ通知を配信することなどが可能です。ここでは、そのパラメーターを操作するAPIについて説明します。

WebAPIのコールについての前提となる原則などについてはPush7 APIの利用をご参照ください。

また、APIをコールする方法としては、HTTPリクエストを用いたWeb APIによるコールと、とPush7のJavaScript SDKを用いたAPIコールの2種があります。

Web APIによるコール

アプリケーションが持つパラメータ覧を取得するAPI

GET /$appno/parameters

アプリケーションが持つパラメータ覧を取得するAPIです。このAPIを叩くには、appnoとapikeyが必要です。

Response

成功時、以下が返却されます。

{
    "parameters": [
        {
            "parameter": "hoge",
            "subscribers_count": "12"
        }
    ]
}

返却されるデータの説明は以下の通りです。

key description
parameters.$no.parameter パラメータを表す文字列です。
parameters.$no.subscribers_count このパラメータを持っている購読者の数です。

購読者にパラメータを付与するAPI

POST /$appno/parameters/add

購読者にパラメータを付与するAPIです。このAPIを叩くには、appnoとapikeyが必要です。

パラメータを付与するためにはすでに振られているパラメータを検索鍵とする為、JavaScriptSDKなどを通してすでにパラメータが付与されている必要があることに気を付けてください。

APIの呼び出しに必要なJSONデータ

以下のようなデータをpayloadとして必要とします。

{
  "add_params": ["any_parameters"],
  "condition": {
    "mode": "OR",
    "params": ["any_parameters"]
  }
}

各データの説明は以下の通りです。

key required description
add_params true 追加するパラメータを配列で指定してください。
condition.mode true パラメータの演算モードです。OR, AND, NOR, NANDから選択してください。
condition.params true 条件のパラメータを配列で指定してください。

Response

成功時、以下が返却されます。

{
  "success": "add"
}

パラメータの設定を更新するAPI

POST /$appno/parameters/update

パラメータの設定を更新するAPIです。このAPIを叩くには、appnoとapikeyが必要です。

APIの呼び出しに必要なJSONデータ

以下のようなデータをpayloadとして必要とします。

{
  "new_params": ["any_parameters"],
  "condition": {
    "mode": "OR",
    "params": ["any_parameters"]
  }
}

各データの説明は以下の通りです。

key required description
new_params true 更新後のパラメータを配列で指定してください。条件に合致したユーザのパラメータはここで指定したパラメータに上書きされます。
condition.mode true パラメータの演算モードです。OR, AND, NOR, NANDから選択してください。
condition.params true 条件のパラメータを配列で指定してください。

Response

成功時、以下が返却されます。

{
  "success": "update"
}

パラメータを削除するAPI

POST /$appno/parameters/delete

パラメータを削除するAPIです。このAPIを叩くには、appnoとapikeyが必要です。

APIの呼び出しに必要なJSONデータ

以下のようなデータをpayloadとして必要とします。

{
  "delete_param": "delete_param"
}

各データの説明は以下の通りです。

key required description
delete_param require 削除する単一のパラメータを文字列で指定してください。

Response

このAPIの呼び出しに成功した場合、次のようなデータがレスポンスとして返却されます。

{
  "success": "delete"
}

SDKのAPIについて

現在、SDKでは以下の3つのAPIが実装されています。

SDKのシグネチャ 説明
p7.get_params() 現在のパラメータを照会する
p7.add_params(string[]) パラメータを追加する
p7.remove_params(string[]) パラメータを削除する

注意事項として、Normalモードにおけるパラメータの変更は再購読を行わないと反映されません。 またセッションを超えた引き継ぎは行われません(リロードをすると消えます)。

アプリケーションが持つパラメータ覧を取得するAPI

p7.get_params():Promise<string[]>

現在のパラメータを照会します。 Nativeモードの場合は、実際にそのページで購読されているパラメータを表示します。 Normalモードの場合は、パラメータの引き継ぎは行われません。

p7.ready().then(()=>p7.get_params()).then(params=>{
    console.log(params); // -> ['apple','orange']
});
p7.add_params(string[]):Promise

購読者にパラメータを付与するAPI

p7.add_params(string[]):Promise

パラメータを追加します。

p7.ready().then(()=>p7.add_params(['apple','orange'])).then(params=>{
    // パラメータが追加された
    console.log(params); // ['pineapple','apple','orange']
});

パラメータを削除するAPI

p7.remove_params(string[]):Promise

追加済みのパラメータを削除します。

p7.ready().then(()=>p7.remove_params(['apple','orange'])).then(params=>{
    // パラメータが削除されたb
    console.log(params); // ['pineapple']
});

Normalモードにおけるパラメータの操作について

Push7 SDKでは主にNativeモードでPush7を導入していることを前提に設計されていますが、一部Normalモードでご利用を頂いているクライアントについては下記の手順でパラメータの操作をすることが可能です。

Normalモードでの利用にあたって
本機能の利用は現在非推奨となっております。
HTTPSでサイトが配信されている場合など、Nativeモードを利用できる場合は、極力Nativeモードでの利用をご検討ください。

Normalモードにおけるパラメータの追加について

Normalモードで購読者にパラメータを付与するためには、アプリケーションURLのクエリ文字列にp7を追加することで行うことが可能です。 例えば、「userid01」と「orange」の2つのパラメータを追加する場合、下記のように指定します。 このパラメータは、ユーザーがアプリケーションを購読したタイミングで付与されます。

https://***.app.push7.jp/?p7=userid01,orange

Normalモードにおけるパラメータの更新について

Normalモードにおいてパラメータを更新するには、上記で説明をしたWeb APIを用いて更新をする方法と、購読ページを用いた更新の2種類が提供されています。

Normalモードで個別のパラメータを持っていない購読者に対して個別にパラメータを変更したい場合、クエリ文字列にp7refreshを追加します。 URLに対してp7refresh=1を追加した場合、購読者がアプリケーションのURLへと再度アクセスした際に、購読者のパラメータをp7に付与されているパラメータへと上書きを行います。

例えば、パラメータを「userid02」と「apple」へと変更したい場合、下記のように指定します。

https://***.app.push7.jp/?p7=userid02,apple&p7refresh=1

なお、Web APIを用いる場合、購読者ごとにユニークなパラメータが付与されていないと個別のパラメータの更新は不可となりますので注意ください。 (複数人に付与されているパラメータに操作を行った場合、対象となる全てのユーザのパラメータが一斉に操作されます。)

本仕様の利用は現在非推奨ですが、会員DBを持っていない場合にNormalモードを利用してパラメータの操作をしなければならない場合などは、本オプションをご利用ください。