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モードでご利用を頂いているクライアントについては下記の手順でパラメータの操作をすることが可能です。
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モードを利用してパラメータの操作をしなければならない場合などは、本オプションをご利用ください。