すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:サーバー API

最終更新日:Jan 17, 2025

メッセージプッシュサービス(MPS)は、メッセージプッシュ(シンプルプッシュ、テンプレートプッシュ、マルチプッシュ、ブロードキャストプッシュ)、メッセージの取り消し、メッセージの統計と分析、スケジュールされたプッシュの機能を実装するために、サーバーに次の OpenAPI を提供します。メッセージプッシュに関しては、MPS は即時プッシュ、タイミングプッシュ、スケジュールプッシュの 3 つのプッシュ戦略をサポートしており、さまざまなシナリオでのプッシュ要件を満たし、反復作業を削減します。同時に、SMS 補足サービス、つまり SMS チャネルを介してメッセージを補足してメッセージ到達率を向上させるサービスを提供しています。

重要
  • 現在、杭州の非金融分野でのみ SMS 補足サービスを提供しています。

  • SMS サービスのご利用には、別途オペレーター料金が発生します。SMS サービスの課金方法と料金については、「Alibaba Cloud SMS とは」をご参照ください。

メーカーチャネルの特別なパラメーター制限は次のとおりです。

メーカーチャネル

ルールと制限

Huawei

制限

API ドキュメント

Honor

プッシュ数量管理の詳細

API ドキュメント

HarmonyOS

制約

API ドキュメント

Xiaomi

メッセージプッシュのルール

API ドキュメント

OPPO

プッシュサービスの制限

API ドキュメント

vivo

メッセージプッシュの制限

API ドキュメント

MPS は以下のサーバーサイド API を提供します。これらについては、以下の表で説明します。

API

説明

メッセージプッシュ - シンプルプッシュ

1 つのターゲット ID に 1 つのメッセージをプッシュします。

メッセージプッシュ - テンプレートプッシュ

1 つのターゲット ID に 1 つのメッセージをプッシュします。メッセージはテンプレートに基づいて作成されます。

メッセージプッシュ - マルチプッシュ

複数のターゲット ID に異なるメッセージをプッシュします。テンプレートに基づいて、ターゲット ID ごとに異なるテンプレートプレースホルダーを設定し、テンプレートに基づいてテンプレートプレースホルダーを使用してパーソナライズされたメッセージプッシュを実装します。

メッセージプッシュ - ブロードキャストプッシュ

すべてのデバイスに同じメッセージをプッシュします。メッセージはテンプレートに基づいて作成されます。

メッセージの取り消し

プッシュされたメッセージを取り消します。

シンプルプッシュまたはテンプレートプッシュでプッシュされたメッセージは、メッセージ ID で取り消すことができます。マルチプッシュまたはブロードキャストプッシュでプッシュされたメッセージは、タスク ID で取り消すことができます。

メッセージプッシュの分析

プッシュされたメッセージ、正常にプッシュされたメッセージ、メッセージの到着、開封されたメッセージ、無視されたメッセージなどのメッセージプッシュ統計データをクエリし、MPS コンソールで作成された、または API の呼び出しによってトリガーされたマルチ/ブロードキャストプッシュタスクとタスクの詳細をクエリします。

スケジュールされたプッシュタスク

スケジュールされたプッシュタスクリストのクエリとスケジュールされたプッシュタスクのキャンセルをサポートします。スケジュールプッシュには、タイミングプッシュとサイクリックプッシュの 2 種類があります。

  • タイミングプッシュ:指定した時刻にメッセージをプッシュします。たとえば、6 月 19 日午前 8 時にメッセージをプッシュします。

  • サイクリックプッシュ:指定した期間内にメッセージを繰り返しプッシュします。たとえば、6 月 1 日から 9 月 30 日までの毎週金曜日の午前 8 時にメッセージをプッシュします。サイクリックプッシュタスクは、1 つ以上のスケジュールされたプッシュタスクを生成する場合があります。

SDK の準備

MPS は、Java、Python、Node.js、PHP の 4 つのプログラミング言語をサポートしています。上記の API をメッセージプッシュのために呼び出す前に、プログラミング言語ごとに異なる準備をする必要があります。

次の例では、さまざまなプログラミング言語の SDK を実装する前に必要な準備について説明します。

Java

上記の 4 つの API をメッセージプッシュのために呼び出す前に、Maven 構成を導入します。次の依存関係をメインの pom ファイルにインポートします。

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-mpaas</artifactId>
  <version>3.0.10</version>
</dependency>

<dependency>
<groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <optional>true</optional>
  <version>[4.3.2,5.0.0)</version>
</dependency>

Python

次のコマンドを実行して、関連する依存関係を追加します。

## Aliyun SDK
pip install aliyun-python-sdk-core
## mPaaSs SDK 
pip install aliyun-python-sdk-mpaas

Node.js

次のコマンドを実行して、関連する依存関係を追加します。

npm i @alicloud/mpaas20190821

PHP

次のコマンドを実行して、関連する依存関係を追加します。

composer require alibabacloud/sdk

メッセージプッシュ - シンプルプッシュ

1 つのターゲット ID に 1 つのメッセージをプッシュします。この API を呼び出す前に、必要な依存関係を導入する必要があります。詳細については、「SDK の準備」をご参照ください。

リクエストパラメーター

パラメーター

データ型

必須

説明

classification

String

いいえ

1

vivo プッシュチャネルを介してプッシュされるメッセージのタイプを示します。

  • 0 - オペレーショナルメッセージ

  • 1 - システムメッセージ

指定しない場合、デフォルトは 1 です。

taskName

String

はい

simpleTest

プッシュタスクの名前

title

String

はい

Test

メッセージタイトル

content

String

はい

Test

メッセージ本文

appId

String

はい

ONEX570DA89211721

mPaaS アプリ ID

workspaceId

String

はい

test

mPaaS ワークスペース

deliveryType

Long

はい

3

ターゲット ID のタイプ。有効な値:

  • 1 - Android デバイス

  • 2 - iOS デバイス

  • 3 - ユーザー

  • 5 - ライブアクティビティの pushToken

  • 6 - ライブアクティビティの activityId

targetMsgkey

String

はい

{"user1024":"1578807462788"}

メッセージがプッシュされるターゲット。マップ形式です。

  • key:ターゲット。deliveryType の値によって異なります。

    • deliveryType の値が 1 の場合、キーは Android デバイス ID です。

    • deliveryType の値が 2 の場合、キーは iOS デバイス ID です。

    • deliveryType の値が 3 の場合、キーはバインディング API を呼び出したときに渡された userid の値であるユーザー ID です。

  • value:メッセージのビジネス ID。ユーザー定義で、一意である必要があります。

ターゲットの数は 10 を超えることはできません。

expiredSeconds

Long

はい

300

メッセージの有効期間(秒)。

pushStyle

Integer

はい

0

プッシュスタイル:

  • 0 - デフォルト

  • 1 - 大きなテキスト

  • 2 - 画像とテキスト

extendedParams

String

いいえ

{"key1":"value1"}

拡張パラメーター。マップ形式です。

pushAction

Long

いいえ

0

メッセージをタップしたときの リダイレクト方法。有効な値:

  • 0:Web URL

  • 1 - Intent アクティビティ

デフォルトのリダイレクト方法は Web URL です。

uri

String

いいえ

http://www

メッセージをタップしたときにリダイレクトされる URL。

silent

Long

いいえ

1

メッセージをサイレントにするかどうかを指定します。有効な値:

  • 1 - サイレント

  • 0 - サイレントではない

notifyType

String

いいえ

メッセージプッシュチャネル:

  • transparent - MPS セルフビルドチャネル

  • notify - デフォルトチャネル

imageUrls

String

いいえ

大きな画像リンク(JSON 文字列)。OPPO、HMS、MIUI、FCM、iOS プッシュチャネルでサポートされています。defaultUrl をデフォルト値として使用できます。

iconUrls

String

いいえ

アイコンリンク(JSON 文字列)。OPPO、HMS、MIUI、FCM、iOS プッシュチャネルでサポートされています。defaultUrl をデフォルト値として使用できます。

strategyType

int

いいえ

1

プッシュ戦略:

  • 0 - 即時

  • 1 - タイミング

  • 2 - サイクリック

デフォルトは 0 です。

StrategyContent

String

いいえ

プッシュ戦略の詳細(JSON 文字列)。strategyType の値が 0 でない場合は、このパラメーターが必要です。StrategyContent フィールドの以下の説明を参照してください。

activityEvent

String

いいえ

リアルタイムアクティビティイベント、オプションの update/end:

  • update - 更新イベント

  • end - 終了イベント

activityContentState

JSONObject

いいえ

リアルタイムアクティビティメッセージの content-state。クライアントで定義されたパラメーターと一致する必要があります。

dismissalDate

long

いいえ

リアルタイムアクティビティメッセージの有効期限(秒単位のタイムスタンプ)。オプションのフィールドです。送信されない場合、iOS システムのデフォルトの有効期限である 12 時間 が使用されます。

説明

smsStrategy パラメーターについて:

  • smsStrategy の値が 0 でない場合、smsSignNamesmsTemplateCodesmsTemplateParam が必要です。

activityEvent パラメーターについて:

  • activityEvent が終了イベントの場合、dismissalDate で設定された有効期限が有効になります。

  • activityEvent が更新イベントの場合、dismissalDate で設定された有効期限は有効になりません。

  • 終了イベントが渡されたが、dismissalDate が渡されなかった場合、iOS システムはデフォルトで 4 時間後にリアルタイムアクティビティを終了します。

StrategyContent フィールド

JSON 値は String に変換されて渡されます。

パラメーター

データ型

必須

説明

fixedTime

long

いいえ

1630303126000

スケジュールされたプッシュのタイムスタンプ(ミリ秒単位、秒単位の精度)。

プッシュ戦略がタイミング(strategyType の値が 1)の場合、fixedTime が必要です。

startTime

long

いいえ

1640966400000

サイクル期間の開始タイムスタンプ(ミリ秒単位、日単位の精度)。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、startTime が必要です。

endTime

long

いいえ

1672416000000

サイクル期間の終了タイムスタンプ(ミリ秒単位、日単位の精度)。終了時刻は、現在の日付から 180 日後を超えることはできません。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、endTime が必要です。

circleType

int

いいえ

3

ループタイプ:

  • 1 - 毎日

  • 2 - 毎週

  • 3 - 毎月

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、circleType が必要です。

circleValue

int[]

いいえ

[1,3]

サイクル値:

  • ループタイプが毎日の場合:空

  • ループタイプが毎週の場合:毎週のサイクリックプッシュ時刻を設定します。たとえば、[1,3] は、毎週月曜日と水曜日にメッセージをプッシュすることを意味します。

  • ループタイプが毎月の場合:毎月のサイクリックプッシュ時刻を設定します。たとえば、[1,3] は、毎月 1 日と 3 日にメッセージをプッシュすることを意味します。

プッシュ戦略がサイクリック(strategyType の値が 2 で、circleType の値が毎日ではない)の場合、circleValue が必要です。

time

String

いいえ

09:45:11

サイクリックプッシュ時刻(時刻形式:HH:mm:ss)。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、time が必要です。

説明
  • 未実行のタイミングプッシュタスクまたはサイクリックプッシュタスクの上限は、デフォルトで 100 です。

  • サイクル期間は、開始日の 00:00 から終了日の 24:00 までです。

  • サイクルの開始時刻も終了時刻も、その日の 00:00 より前であってはならず、終了時刻は開始時刻より前であってはなりません。

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

PushResult

JSON

リクエスト結果

Success

boolean

true

リクエストステータス。Success の値は、PushRresult JSON 文字列に含まれています。

ResultMsg

String

param is invalid

エラーの内容。ResultMsg の値は、PushRresult JSON 文字列に含まれています。

Data

String

903bf653c1b5442b9ba07684767bf9c2

スケジュールされたプッシュタスク ID。strategyType が 0 でない場合、このフィールドは空ではありません。

コード例

AccessKey に AliyunMPAASFullAccess 権限があることを確認してください。詳細については、「RAM ユーザーのアプリケーションレベルアクセス制御」をご参照ください。

Java サンプルコード

次のサンプルコードの AccessKey ID と AccessKey シークレットの取得方法については、こちらをクリックしてください。

 DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "*****"); // RAM アカウントの AccessKey シークレット

        IAcsClient client = new DefaultAcsClient(profile);
        // API リクエストを作成し、パラメーターを設定します
        PushSimpleRequest request = new PushSimpleRequest();
        request.setAppId("ONEX570DA89211721");
        request.setWorkspaceId("test");
        request.setTaskName("テストタスク");
        request.setTitle("テスト");
        request.setContent("テスト");
        request.setDeliveryType(3L);
        Map<String,String> extendedParam = new HashMap<String, String>();
        extendedParam.put("key1","value1");
        request.setExtendedParams(JSON.toJSONString(extendedParam));
        request.setExpiredSeconds(300L);

        request.setPushStyle(2);
        String imageUrls = "{\"defaultUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"oppoUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"miuiUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"fcmUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"iosUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\"}";
        String iconUrls = "{\"defaultUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"hmsUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"oppoUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"miuiUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\"}";
        request.setImageUrls(imageUrls);
        request.setIconUrls(iconUrls);

        request.setStrategyType(2);
        request.setStrategyContent("{\"fixedTime\":1630303126000,\"startTime\":1625673600000,\"endTime\":1630303126000,\"circleType\":1,\"circleValue\":[1, 7],\"time\":\"13:45:11\"}");

        Map<String,String> target = new HashMap<String, String>();
        String msgKey = String.valueOf(System.currentTimeMillis());
        target.put("user1024",msgKey);
        request.setTargetMsgkey(JSON.toJSONString(target));
        // リクエストを開始し、レスポンスまたは例外を処理します
        PushSimpleResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }

Python サンプルコード

from aliyunsdkcore.client import AcsClient
from aliyunsdkmpaas.request.v20190821 import PushSimpleRequest
import json

# AcsClient インスタンスを初期化します
client = AcsClient(
  "***",
  "***",
  "cn-hongkong"
);

# リクエストを初期化し、パラメーターを設定します
request = PushSimpleRequest.PushSimpleRequest()
request.set_endpoint("mpaas.cn-hongkong.aliyuncs.com")
request.set_AppId("ONEX570DA89211721")
request.set_WorkspaceId("test")
request.set_Title( "Python テスト")
request.set_Content( "テスト 2")
request.set_DeliveryType(3)
request.set_TaskName("Python テンプレートプッシュのテストタスク")
request.set_ExpiredSeconds(600)
target = {"user1024":str(time.time())}
request.set_TargetMsgkey(json.dumps(target))

# レスポンスを出力します
response = client.do_action_with_exception(request)
print response

Node.js サンプルコード

const sdk = require('@alicloud/mpaas20190821');

const { default: Client, PushSimpleRequest } = sdk;
// クライアントを作成します
const client = new Client({
  accessKeyId: '****',
  accessKeySecret: '*****',
  endpoint: 'mpaas.cn-hongkong.aliyuncs.com',
  apiVersion: '2019-08-21'
});
// リクエストを初期化します。
  const request = new PushSimpleRequest();
  request.appId = "ONEX570DA89211721";
  request.workspaceId = "test";
  request.title = "Node テスト";
  request.content = "テスト";
  request.deliveryType = 3;
  request.taskName = "Node テストタスク";
  request.expiredSeconds=600;
  const extendedParam = {
    test: 'カスタム拡張パラメーター'
  };
  request.extendedParams = JSON.stringify(extendedParam);
// 値はビジネスメッセージの ID です。ID が一意であることを確認してください。
  const target = {
    "userid1024": String(new Date().valueOf())
  };
  request.targetMsgkey = JSON.stringify(target);

// API 操作を呼び出します。
try {
  client.pushSimple(request).then(res => {
    console.log('SUCCESS', res);
  }).catch(e => {
    console.log('FAIL', e);
  });
} catch(e) {
  console.log('ERROR', e);
}

PHP サンプルコード

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\MPaaS\MPaaS;
AlibabaCloud::accessKeyClient('accessKeyId', 'accessKeySecret')
    ->regionId('cn-hongkong')
    ->asDefaultClient();

class Demo {
    public function run() {
        try {
               $this->simplePush();
        } catch (\Exception $e) {
        }
    }


    public function simplePush() {
        $request = MPaaS::v20190821()->pushSimple();
        $result = $request->withAppId("ONEX570DA89211721")
            ->withWorkspaceId("test")
            ->withTitle("PHP テスト")
            ->withContent("テスト 3")
            ->withDeliveryType(3)
            ->withTaskName("PHP テストタスク")
            ->withExpiredSeconds(600)
            ->withTargetMsgkey(
                json_encode(["userid1024" => "".time() ]
            ))
            // エンドポイント
            ->host("mpaas.cn-hongkong.aliyuncs.com")
            // デバッグモードを有効にするかどうかを指定します
            ->debug(true)
            ->request();
    }
}

メッセージプッシュ - テンプレートプッシュ

テンプレートプッシュとは、1 つのメッセージを 1 つのターゲット ID にプッシュすることです。メッセージはテンプレートに基づいて作成されます。複数の ID が同じテンプレートを共有できます。

インターフェースを呼び出す前に、次の操作を完了していることを確認してください。

  • MPS コンソールでテンプレートを作成していること。詳細については、「テンプレートの作成」をご参照ください。

  • 必要な依存関係を導入していること。詳細については、「SDK の準備」をご参照ください。

リクエストパラメーター

パラメーター

データ型

必須

説明

classification

String

いいえ

1

vivo プッシュチャネルを介してプッシュされるメッセージのタイプを示します。

  • 0 - オペレーショナルメッセージ

  • 1 - システムメッセージ

指定しない場合、デフォルトは 1 です。

taskName

String

はい

templateTest

プッシュタスクの名前

appId

String

はい

ONEX570DA89211721

mPaaS アプリ ID

workspaceId

String

はい

test

mPaaS ワークスペース

deliveryType

Long

はい

3

ターゲット ID のタイプ。有効な値:

  • 1 - Android デバイス

  • 2 - iOS デバイス

  • 3 - ユーザー

  • 5 - ライブアクティビティの pushToken

  • 6 - ライブアクティビティの activityId

targetMsgkey

String

はい

{"user1024":"1578807462788"}

メッセージがプッシュされるターゲット。マップ形式です。

  • key:ターゲット。deliveryType の値によって異なります。

    • deliveryType の値が 1 の場合、キーは Android デバイス ID です。

    • deliveryType の値が 2 の場合、キーは iOS デバイス ID です。

    • deliveryType の値が 3 の場合、キーはバインディング API を呼び出したときに渡された userid の値であるユーザー ID です。

  • value:メッセージのビジネス ID。ユーザー定義で、一意である必要があります。

ターゲットの数は 10 を超えることはできません。

expiredSeconds

Long

はい

300

メッセージの有効期間(秒)。

templateName

String

はい

testTemplate

テンプレートの名前。MPS コンソールでテンプレートを作成します。

templateKeyValue

String

いいえ

{"money":"200","name":"Bob"}

テンプレートのパラメーター。マップ形式です。パラメーターは、templateName で指定されたテンプレートによって異なります。キーはプレースホルダーを指し、値はプレースホルダーを置き換えるために使用される特定の値を指します。たとえば、テンプレートの内容は #name# さん、#money# 円獲得おめでとうございます のようになります。2 つのシャープ記号「#」の間の文字列は、プレースホルダーの名前です。

extendedParams

String

いいえ

{"key1":"value1"}

拡張パラメーター。マップ形式です。

notifyType

String

いいえ

メッセージプッシュチャネル:

  • transparent - MPS セルフビルドチャネル

  • notify - デフォルトチャネル

strategyType

int

いいえ

1

プッシュ戦略:

  • 0 - 即時

  • 1 - タイミング

  • 2 - サイクリック

デフォルトは 0 です。

StrategyContent

String

いいえ

プッシュ戦略の詳細(JSON 文字列)。strategyType の値が 0 でない場合は、このパラメーターが必要です。StrategyContent フィールドの以下の説明を参照してください。

activityEvent

String

いいえ

リアルタイムアクティビティイベント、オプションの update/end:

  • update - 更新イベント

  • end - 終了イベント

activityContentState

JSONObject

いいえ

リアルタイムアクティビティメッセージの content-state。クライアントで定義されたパラメーターと一致する必要があります。

dismissalDate

long

いいえ

リアルタイムアクティビティメッセージの有効期限(秒単位のタイムスタンプ)。オプションのフィールドです。送信されない場合、iOS システムのデフォルトの有効期限である 12 時間が使用されます。

説明

smsStrategy パラメーターについて:

  • smsStrategy の値が 0 でない場合、smsSignNamesmsTemplateCodesmsTemplateParam が必要です。

activityEvent パラメーターについて:

  • activityEvent が終了イベントの場合、dismissalDate で設定された有効期限が有効になります。

  • activityEvent が更新イベントの場合、dismissalDate で設定された有効期限は有効になりません。

  • 終了イベントが渡されたが、dismissalDate が渡されなかった場合、iOS システムはデフォルトで 4 時間後にリアルタイムアクティビティを終了します。

StrategyContent フィールド

JSON 値は String に変換されて渡されます。

パラメーター

タイプ

必須

説明

fixedTime

long

いいえ

1630303126000

スケジュールされたプッシュのタイムスタンプ(ミリ秒単位、秒単位の精度)。

プッシュ戦略がタイミング(strategyType の値が 1)の場合、fixedTime が必要です。

startTime

long

いいえ

1640966400000

サイクル期間の開始タイムスタンプ(ミリ秒単位、日単位の精度)。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、startTime が必要です。

endTime

long

いいえ

1672416000000

サイクル期間の終了タイムスタンプ(ミリ秒単位、日単位の精度)。終了時刻は、現在の日付から 180 日後を超えることはできません。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、endTime が必要です。

circleType

int

いいえ

3

ループタイプ:

  • 1 - 毎日

  • 2 - 毎週

  • 3 - 毎月

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、circleType が必要です。

circleValue

int[]

いいえ

[1,3]

サイクル値:

  • ループタイプが毎日の場合:空

  • ループタイプが毎週の場合:毎週のサイクリックプッシュ時刻を設定します。たとえば、[1,3] は、毎週月曜日と水曜日にメッセージをプッシュすることを意味します。

  • ループタイプが毎月の場合:毎月のサイクリックプッシュ時刻を設定します。たとえば、[1,3] は、毎月 1 日と 3 日にメッセージをプッシュすることを意味します。

プッシュ戦略がサイクリック(strategyType の値が 2 で、circleType の値が毎日ではない)の場合、circleValue が必要です。

time

String

いいえ

09:45:11

サイクリックプッシュ時刻(時刻形式:HH:mm:ss)。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、time が必要です。

説明
  • 未実行のタイミングプッシュタスクまたはサイクリックプッシュタスクの上限は、デフォルトで 100 です。

  • サイクル期間は、開始日の 00:00 から終了日の 24:00 までです。

  • サイクルの開始時刻も終了時刻も、その日の 00:00 より前であってはならず、終了時刻は開始時刻より前であってはなりません。

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

PushResult

JSON

リクエスト結果

Success

boolean

true

リクエストステータス。Success の値は、PushRresult JSON 文字列に含まれています。

ResultMsg

String

param is invalid

エラーの内容。ResultMsg の値は、PushRresult JSON 文字列に含まれています。

Data

String

903bf653c1b5442b9ba07684767bf9c2

スケジュールされたプッシュタスク ID。strategyType が 0 でない場合、このフィールドは空ではありません。

コード例

AccessKey に AliyunMPAASFullAccess 権限があることを確認してください。詳細については、「RAM ユーザーのアプリケーションレベルアクセス制御」をご参照ください。

Java サンプルコード

次のサンプルコードの AccessKey ID と AccessKey シークレットの取得方法については、こちらをクリックしてください。

 DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します。
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey シークレット

        IAcsClient client = new DefaultAcsClient(profile);
        // API リクエストを作成し、パラメーターを設定します
        PushTemplateRequest request = new PushTemplateRequest();
        request.setAppId("ONEX570DA89211721");
        request.setWorkspaceId("test");
        request.setTemplateName("testTemplate");
        // #name# さん、#money# 円獲得おめでとうございます。
        Map<String,String> templatekv = new HashMap<String, String>();
        templatekv.put("name"," Bob");
        templatekv.put("money","200");
        request.setTemplateKeyValue(JSON.toJSONString(templatekv));
        request.setExpiredSeconds(600L);
        request.setTaskName("templateTest");
        request.setDeliveryType(3L);
        Map<String,String> target = new HashMap<String, String>();
        String msgKey = String.valueOf(System.currentTimeMillis());
        target.put("userid1024",msgKey);
        request.setTargetMsgkey(JSON.toJSONString(target));

        request.setStrategyType(2);
        request.setStrategyContent("{\"fixedTime\":1630303126000,\"startTime\":1625673600000,\"endTime\":1630303126000,\"circleType\":1,\"circleValue\":[1, 7],\"time\":\"13:45:11\"}");

        PushTemplateResponse response;
        try {
            response = client.getAcsResponse(request);

            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }

Python サンプルコード

from aliyunsdkcore.client import AcsClient
from aliyunsdkmpaas.request.v20190821 import PushTemplateRequest
import json
import time

# AcsClient インスタンスを初期化します
client = AcsClient(
  "AccessKey ID",
  "AccessKey Secret",
  "cn-hongkong"
);

# リクエストを初期化し、パラメーターを設定します
request = PushTemplateRequest.PushTemplateRequest()
request.set_endpoint("mpaas.cn-hongkong.aliyuncs.com")
request.set_AppId("ONEX570DA89211721")
request.set_WorkspaceId("test")
request.set_TemplateName("template1024")
templatekv = {"name":"Bob","money":"200"}
request.set_TemplateKeyValue(json.dumps(templatekv))
request.set_DeliveryType(3)
request.set_TaskName("Python テンプレートプッシュのテストタスク")
request.set_ExpiredSeconds(600)
target = {"userid1024":str(time.time())}
request.set_TargetMsgkey(json.dumps(target))

# レスポンスを出力します
response = client.do_action_with_exception(request)
print response

Node.js サンプルコード

const sdk = require('@alicloud/mpaas20190821');

const { default: Client, PushTemplateRequest } = sdk;
// クライアントを作成します。
const client = new Client({
  accessKeyId: 'accessKeyId',
  accessKeySecret: 'accessKeySecret',
  endpoint: 'mpaas.cn-hongkong.aliyuncs.com',
  apiVersion: '2019-08-21'
});
// リクエストを初期化します。
  const request = new PushTemplateRequest();
  request.appId = "ONEX570DA89211721";
  request.workspaceId = "test";
  request.templateName= "template1024";
  const templatekv = {
    name: 'Bob',
    money:'300'
  };
  request.templateKeyValue = JSON.stringify(templatekv);
  request.deliveryType = 3;
  request.taskName = "Node テストタスク";
  request.expiredSeconds=600;
  const extendedParam = {
    test: 'カスタム拡張パラメーター'
  };
  request.extendedParams = JSON.stringify(extendedParam);
  const target = {
    "userid1024": String(new Date().valueOf())
  };
  request.targetMsgkey = JSON.stringify(target);

// API 操作を呼び出します。
try {
  client.pushTemplate(request).then(res => {
    console.log('SUCCESS', res);
  }).catch(e => {
    console.log('FAIL', e);
  });
} catch(e) {
  console.log('ERROR', e);
}

PHP サンプルコード

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\MPaaS\MPaaS;
AlibabaCloud::accessKeyClient('accessKeyId', 'accessKeySecret')
    ->regionId('cn-hongkong')
    ->asDefaultClient();

class Demo {
    public function run() {
        try {
              $this->templatePush();
        } catch (\Exception $e) {
        }
    }

    public function templatePush() {
        $request = MPaaS::v20190821()->pushTemplate();
        $result = $request->host("mpaas.cn-hongkong.aliyuncs.com")
            // デバッグモードを有効にするかどうかを指定します。
            ->debug(true)
            ->withAppId("ONEX570DA89211721")
            ->withWorkspaceId("test")
            ->withTemplateName("template1024")
            ->withTemplateKeyValue(json_encode(["name" => "Bob", "money" => "200"]))
            ->withDeliveryType(3)
            ->withTaskName("PHP テストタスク")
            ->withExpiredSeconds(600)
            ->withTargetMsgkey(
                json_encode(["userid1024" => "".time() ])
            )
            ->request();
    }
}

メッセージプッシュ - マルチプッシュ

この API を呼び出すと、異なるターゲット ID に異なるメッセージをプッシュできます。この API を使用すると、テンプレートのプレースホルダーを置き換えることによって、ターゲット ID ごとにパーソナライズされたメッセージを作成できます。テンプレートプッシュとは異なり、マルチプッシュでは、異なるターゲット ID に異なるコンテンツのメッセージを送信できます。

インターフェースを呼び出す前に、次の操作を完了していることを確認してください。

  • MPS コンソールでプレースホルダーを含むテンプレートを作成していること。そうでない場合、パーソナライズされたメッセージプッシュ、つまり異なるターゲット ID に異なるメッセージをプッシュすることはできません。詳細については、「テンプレートの作成」をご参照ください。

  • 必要な依存関係を導入していること。詳細については、「SDK の準備」をご参照ください。

リクエストパラメーター

パラメーター

データ型

必須

説明

classification

String

いいえ

1

vivo プッシュチャネルを介してプッシュされるメッセージのタイプを示します。

  • 0 - オペレーショナルメッセージ

  • 1 - システムメッセージ

指定しない場合、デフォルトは 1 です。

taskName

String

はい

multipleTest

プッシュタスクの名前

appId

String

はい

ONEX570DA89211721

mPaaS アプリ ID

workspaceId

String

はい

test

mPaaS ワークスペース

deliveryType

Long

はい

3

ターゲット ID のタイプ。有効な値:

  • 1 - Android デバイス

  • 2 - iOS デバイス

  • 3 - ユーザー

  • 5 - ライブアクティビティの pushToken

  • 6 - ライブアクティビティの activityId

templateName

String

はい

testTemplate

テンプレート名。テンプレートは MPS コンソールで作成できます。

targetMsgs

List

はい

targetMsgs オブジェクトリスト

TargetMsg オブジェクトのリスト。| プッシュターゲットのリスト。各オブジェクトのパラメーターについては、「targetMsgs オブジェクト」をご参照ください。

expiredSeconds

Long

はい

300

メッセージの有効期間(秒)。

extendedParams

String

いいえ

{"key1":"value1"}

拡張パラメーター。マップ形式です。

notifyType

String

いいえ

メッセージプッシュチャネル:

  • transparent - MPS セルフビルドチャネル

  • notify - デフォルトチャネル

strategyType

int tra

いいえ

1

プッシュ戦略:

  • 0 – 即時

  • 1 - タイミング

  • 2 - サイクリック

デフォルトは 0 です。

StrategyContent

String

いいえ

プッシュ戦略の詳細(JSON 文字列)。strategyType の値が 0 でない場合は、このパラメーターが必要です。StrategyContent フィールドの以下の説明を参照してください。

activityEvent

String

いいえ

リアルタイムアクティビティイベント、オプションの update/end:

  • update - 更新イベント

  • end - 終了イベント

activityContentState

JSONObject

いいえ

リアルタイムアクティビティメッセージの content-state。クライアントで定義されたパラメーターと一致する必要があります。

dismissalDate

long

いいえ

リアルタイムアクティビティメッセージの有効期限(秒単位のタイムスタンプ)。オプションのフィールドです。送信されない場合、iOS システムのデフォルトの有効期限である 12 時間が使用されます。

説明

activityEvent パラメーターについて:

  • activityEvent が終了イベントの場合、dismissalDate で設定された有効期限が有効になります。

  • activityEvent が更新イベントの場合、dismissalDate で設定された有効期限は有効になりません。

  • 終了イベントが渡されたが、dismissalDate が渡されなかった場合、iOS システムはデフォルトで 4 時間後にリアルタイムアクティビティを終了します。

targetMsgs オブジェクト

パラメーター

データ型

必須

説明

target

String

はい

userid1024

ターゲット ID。deliveryType パラメーターの値によって異なります。

msgKey

String

はい

1578807462788

ビジネスメッセージの ID。この ID は、メッセージのトラブルシューティングに使用されます。ID はユーザー定義で、一意である必要があります。

templateKeyValue

String

いいえ

{"money":"200","name":"Bob"}

テンプレートのパラメーター。マップ形式です。パラメーターは、templateName で指定されたテンプレートによって異なります。キーはプレースホルダーを指し、値はプレースホルダーを置き換えるために使用される特定の値を指します。たとえば、テンプレートの内容は #name# さん、#money# 円獲得おめでとうございます のようになります。2 つのシャープ記号「#」の間の文字列は、プレースホルダーの名前です。

extendedParams

String

いいえ

{"key1":"value1"}

拡張パラメーター。マップ形式です。メッセージごとに異なる拡張パラメーターがあります。

StrategyContent フィールド

JSON 値は String に変換されて渡されます。

パラメーター

データ型

必須

説明

fixedTime

long

いいえ

1630303126000

スケジュールされたプッシュのタイムスタンプ(ミリ秒単位、秒単位の精度)。

プッシュ戦略がタイミング(strategyType の値が 1)の場合、fixedTime が必要です。

startTime

long

いいえ

1640966400000

サイクル期間の開始タイムスタンプ(ミリ秒単位、日単位の精度)。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、startTime が必要です。

endTime

long

いいえ

1672416000000

サイクル期間の終了タイムスタンプ(ミリ秒単位、日単位の精度)。終了時刻は、現在の日付から 180 日後を超えることはできません。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、endTime が必要です。

circleType

int

いいえ

3

ループタイプ:

  • 1 - 毎日

  • 2 - 毎週

  • 3 - 毎月

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、circleType が必要です。

circleValue

int[]

いいえ

[1,3]

サイクル値:

  • ループタイプが毎日の場合:空

  • ループタイプが毎週の場合:毎週のサイクリックプッシュ時刻を設定します。たとえば、[1,3] は、毎週月曜日と水曜日にメッセージをプッシュすることを意味します。

  • ループタイプが毎月の場合:毎月のサイクリックプッシュ時刻を設定します。たとえば、[1,3] は、毎月 1 日と 3 日にメッセージをプッシュすることを意味します。

プッシュ戦略がサイクリック(strategyType の値が 2 で、circleType の値が毎日ではない)の場合、circleValue が必要です。

time

String

いいえ

09:45:11

サイクリックプッシュ時刻(時刻形式:HH:mm:ss)。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、time が必要です。

説明
  • 未実行のタイミングプッシュタスクまたはサイクリックプッシュタスクの上限は、デフォルトで 100 です。

  • サイクル期間は、開始日の 00:00 から終了日の 24:00 までです。

  • サイクルの開始時刻も終了時刻も、その日の 00:00 より前であってはならず、終了時刻は開始時刻より前であってはなりません。

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

PushResult

JSON

リクエスト結果

Success

boolean

true

リクエストステータス。Success の値は、PushRresult JSON 文字列に含まれています。

ResultMsg

String

param is invalid

エラーの内容。ResultMsg の値は、PushRresult JSON 文字列に含まれています。

Data

String

903bf653c1b5442b9ba07684767bf9c2

スケジュールされたプッシュタスク ID。strategyType が 0 でない場合、このフィールドは空ではありません。

コード例

AccessKey に AliyunMPAASFullAccess 権限があることを確認してください。詳細については、「RAM ユーザーのアプリケーションレベルアクセス制御」をご参照ください。

Java サンプルコード

次のサンプルコードの AccessKey ID と AccessKey シークレットの取得方法については、こちらをクリックしてください。

 DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey シークレット

        IAcsClient client = new DefaultAcsClient(profile);
        // API リクエストを作成し、パラメーターを設定します
        PushMultipleRequest request = new PushMultipleRequest();
        request.setAppId("ONEX570DA89211721");
        request.setWorkspaceId("test");
        request.setDeliveryType(3L);
        request.setTaskName("multipleTest");
        request.setTemplateName("testTemplate");
        // #name# さん、#money# 円獲得おめでとうございます。
        List<PushMultipleRequest.TargetMsg> targetMsgs = new ArrayList<PushMultipleRequest.TargetMsg>();
        PushMultipleRequest.TargetMsg targetMsg = new PushMultipleRequest.TargetMsg();
        targetMsg.setTarget("userid1024");
        targetMsg.setMsgKey(String.valueOf(System.currentTimeMillis()));
        Map<String, String> templatekv = new HashMap<String, String>();
        templatekv.put("name", "Bob");
        templatekv.put("money", "200");
        targetMsg.setTemplateKeyValue(JSON.toJSONString(templatekv));
        // TargetMsg オブジェクトの数は最大 100 にすることができます
        targetMsgs.add(targetMsg);
        request.setTargetMsgs(targetMsgs);
        request.setExpiredSeconds(600L);

        request.setStrategyType(2);
        request.setStrategyContent("{\"fixedTime\":1630303126000,\"startTime\":1625673600000,\"endTime\":1630303126000,\"circleType\":1,\"circleValue\":[1, 7],\"time\":\"13:45:11\"}");

        PushMultipleResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
            System.out.println(response.getPushResult().getData());  // プッシュタスク ID またはスケジュールされたプッシュタスク ID
        } catch (ClientException e) {
            e.printStackTrace();
        }

Python サンプルコード

# -*- coding: utf8 -*-
from aliyunsdkcore.client import AcsClient
from aliyunsdkmpaas.request.v20190821 import PushMultipleRequest
import json
import time

# AcsClient インスタンスを初期化します
client = AcsClient(
  "AccessKey ID",
  "AccessKey Secret",
  "cn-hongkong"
);

# リクエストを初期化し、パラメーターを設定します
request = PushMultipleRequest.PushMultipleRequest()
request.set_endpoint("mpaas.cn-hongkong.aliyuncs.com")
request.set_AppId("ONEX570DA89211721")
request.set_WorkspaceId("test")
request.set_TemplateName("template1024")
request.set_DeliveryType(3)
request.set_TaskName("Python テンプレートプッシュのテストタスク")
request.set_ExpiredSeconds(600)
msgkey = str(time.time())
targets = [
  {
    "Target": "user1024",
    "MsgKey": msgkey,
    "TemplateKeyValue": {
      "name": "Bob",
      "money": "200"
    }
  }
]
request.set_TargetMsgs(targets)
# レスポンスを出力します
response = client.do_action_with_exception(request)
print response

Node.js サンプルコード

const sdk = require('@alicloud/mpaas20190821');

const { default: Client, PushMultipleRequest,PushMultipleRequestTargetMsg } = sdk;
// クライアントを作成します
const client = new Client({
  accessKeyId: 'accessKeyId',
  accessKeySecret: 'AccessKey Secret',
  endpoint: 'mpaas.cn-hongkong.aliyuncs.com',
  apiVersion: '2019-08-21'
});
// リクエストを初期化します
  const request = new PushMultipleRequest();
  request.appId = "ONEX570DA89211721";
  request.workspaceId = "test";
  request.templateName= "template1024";
  const templatekv = {
    name: 'Bob',
    money:'300'
  };
  //request.templateKeyValue = JSON.stringify(templatekv);

  request.deliveryType = 3;
  request.taskName = "Node テストタスク";
  request.expiredSeconds=600;
  const extendedParam = {
    test: 'カスタム拡張パラメーター'
  };
  request.extendedParams = JSON.stringify(extendedParam);

  const targetMsgkey = new PushMultipleRequestTargetMsg();
  targetMsgkey.target = "userid1024";
  targetMsgkey.msgKey = String(new Date().valueOf());
  targetMsgkey.templateKeyValue = JSON.stringify(templatekv);;
  request.targetMsg = [targetMsgkey];

// API 操作を呼び出します。
try {
  client.pushMultiple(request).then(res => {
    console.log('SUCCESS', res);
  }).catch(e => {
    console.log('FAIL', e);
  });
} catch(e) {
  console.log('ERROR', e);
}

PHP サンプルコード

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\MPaaS\MPaaS;
AlibabaCloud::accessKeyClient('accessKeyId', 'accessKeySecret')
    ->regionId('cn-hongkong')
    ->asDefaultClient();

class Demo {
    public function run() {
        try {
              $this->multiPush();
        } catch (\Exception $e) {
        }
    }


   public function multiPush() {
        $request = MPaaS::v20190821()->pushMultiple();
        $result = $request->host("mpaas.cn-hongkong.aliyuncs.com")
            // デバッグモードを有効にするかどうかを指定します
            ->debug(true)
            ->withAppId("ONEX570DA89211721")
            ->withWorkspaceId("test")
            ->withTemplateName("template1024")
            ->withDeliveryType(3)
            ->withTaskName("PHP マルチプッシュのテストタスク")
            ->withExpiredSeconds(600)
            ->withTargetMsg(
                [
                    [
                        "Target" => "userid1024",
                        "MsgKey" => "" . time(),
                        "TemplateKeyValue" => json_encode([
                            "name" => "Bob",
                            "money" => "200",
                        ])
                    ]
                ]
            )
            ->request();
    }
}

メッセージプッシュ - ブロードキャストプッシュ

このインターフェースを呼び出すと、すべてのデバイスに同じメッセージをプッシュできます。メッセージはテンプレートに基づいて作成されます。

インターフェースを呼び出す前に、次の操作を完了していることを確認してください。

  • MPS コンソールでプレースホルダーを含むテンプレートを作成していること。そうでない場合、パーソナライズされたメッセージプッシュ、つまり異なるターゲット ID に異なるメッセージをプッシュすることはできません。詳細については、「テンプレートの作成」をご参照ください。

  • 必要な依存関係を導入していること。詳細については、「SDK の準備」をご参照ください。

リクエストパラメーター

パラメーター

データ型

必須

説明

classification

String

いいえ

1

vivo プッシュチャネルを介してプッシュされるメッセージのタイプを示します。

  • 0 - オペレーショナルメッセージ

  • 1 - システムメッセージ

指定しない場合、デフォルトは 1 です。

taskName

String

はい

broadcastTest

プッシュタスクの名前

appId

String

はい

ONEX570DA89211721

mPaaS アプリ ID

workspaceId

String

はい

test

mPaaS ワークスペース

deliveryType

Long

はい

1

ターゲット ID のタイプ。有効な値:

  • 1 - Android ブロードキャスト

  • 2 - iOS ブロードキャスト

msgkey

String

はい

1578807462788

ビジネスメッセージの ID。この ID は、メッセージのトラブルシューティングに使用されます。ID はユーザー定義で、一意である必要があります。

expiredSeconds

Long

はい

300

メッセージの有効期間(秒)。

templateName

String

はい

broadcastTemplate

テンプレート名。テンプレートは MPS コンソールで作成できます。

templateKeyValue

String

いいえ

{"content":"お知らせ"}

テンプレートのパラメーター。マップ形式です。パラメーターは、templateName で指定されたテンプレートによって異なります。キーはプレースホルダーを指し、値はプレースホルダーを置き換えるために使用される特定の値を指します。

pushStatus

Long

いいえ

0

ログインステータス:

  • 0 - ログインユーザー(デフォルト)

  • 1 - すべてのユーザー(ログインユーザーとログアウトユーザーを含む)

  • 2 - ログアウトユーザー

bindPeriod

int

いいえ

pushStatus の値が 0 の場合に必須のログイン期間:

  • 1 - 過去 7 日間のログインユーザー

  • 2 - 過去 15 日間のログインユーザー

  • 3 - 過去 60 日間のログインユーザー

  • 4 - 永続的

説明

bindPeriod パラメーターは、非金融環境でのみ設定可能です。

unBindPeriod

Long

いいえ

pushStatus の値が 1 または 2 の場合に必須のログアウト期間:

  • 1 - 過去 7 日間のログアウトユーザー

  • 2 - 過去 15 日間のログアウトユーザー

  • 3 - 過去 60 日間のログアウトユーザー

  • 4 - 永続的

androidChannel

Integer

いいえ

Android メッセージチャネル:

  • transparent - MPS セルフビルドチャネル

  • notify - デフォルトチャネル

strategyType

int

いいえ

1

プッシュ戦略:

  • 0 - 即時

  • 1 - タイミング

  • 2 - サイクリック

デフォルトは 0 です。

StrategyContent

String

いいえ

プッシュ戦略の詳細(JSON 文字列)。strategyType の値が 0 でない場合は、このパラメーターが必要です。StrategyContent フィールドの以下の説明を参照してください。

StrategyContent フィールド

JSON 値は String に変換されて渡されます。

パラメーター

データ型

必須

説明

fixedTime

long

いいえ

1630303126000

スケジュールされたプッシュのタイムスタンプ(ミリ秒単位、秒単位の精度)。

プッシュ戦略がタイミング(strategyType の値が 1)の場合、fixedTime が必要です。

startTime

long

いいえ

1640966400000

サイクル期間の開始タイムスタンプ(ミリ秒単位、日単位の精度)。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、startTime が必要です。

endTime

long

いいえ

1672416000000

サイクル期間の終了タイムスタンプ(ミリ秒単位、日単位の精度)。終了時刻は、現在の日付から 180 日後を超えることはできません。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、endTime が必要です。

circleType

int

いいえ

3

ループタイプ:

  • 1 - 毎日

  • 2 - 毎週

  • 3 - 毎月

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、circleType が必要です。

circleValue

int[]

いいえ

[1,3]

サイクル値:

  • ループタイプが毎日の場合:空

  • ループタイプが毎週の場合:毎週のサイクリックプッシュ時刻を設定します。たとえば、[1,3] は、毎週月曜日と水曜日にメッセージをプッシュすることを意味します。

  • ループタイプが毎月の場合:毎月のサイクリックプッシュ時刻を設定します。たとえば、[1,3] は、毎月 1 日と 3 日にメッセージをプッシュすることを意味します。

プッシュ戦略がサイクリック(strategyType の値が 2 で、circleType の値が毎日ではない)の場合、circleValue が必要です。

time

String

いいえ

09:45:11

サイクリックプッシュ時刻(時刻形式:HH:mm:ss)。

プッシュ戦略がサイクリック(strategyType の値が 2)の場合、time が必要です。

説明
  • 未実行のタイミングプッシュタスクまたはサイクリックプッシュタスクの上限は、デフォルトで 100 です。

  • サイクル期間は、開始日の 00:00 から終了日の 24:00 までです。

  • サイクルの開始時刻も終了時刻も、その日の 00:00 より前であってはならず、終了時刻は開始時刻より前であってはなりません。

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

PushResult

JSON

リクエスト結果

Success

boolean

true

リクエストステータス。Success の値は、PushRresult JSON 文字列に含まれています。

ResultMsg

String

param is invalid

エラーの内容。ResultMsg の値は、PushRresult JSON 文字列に含まれています。

Data

String

903bf653c1b5442b9ba07684767bf9c2

スケジュールされたプッシュタスク ID。strategyType が 0 でない場合、このフィールドは空ではありません。

コード例

AccessKey に AliyunMPAASFullAccess 権限があることを確認してください。詳細については、「RAM ユーザーのアプリケーションレベルアクセス制御」をご参照ください。

Java サンプルコード

次のサンプルコードの AccessKey ID と AccessKey シークレットの取得方法については、こちらをクリックしてください。

DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey Secret

        IAcsClient client = new DefaultAcsClient(profile);

        PushBroadcastRequest request = new PushBroadcastRequest();
        request.setAppId("ONEX570DA89211720");
        request.setWorkspaceId("test");
        request.setDeliveryType(2L);
        request.setMsgkey(String.valueOf(System.currentTimeMillis()));
        request.setExpiredSeconds(600L);
        request.setTaskName("broadcastTest ");
        request.setTemplateName("broadcastTemplate ");
        // これはお知らせです:#content#。
        Map<String, String> templatekv = new HashMap<String, String>();
        templatekv.put("content", "お知らせの内容");
        request.setTemplateKeyValue(JSON.toJSONString(templatekv));

        request.setStrategyType(2);
        request.setStrategyContent("{\"fixedTime\":1630303126000,\"startTime\":1625673600000,\"endTime\":1630303126000,\"circleType\":1,\"circleValue\":[1, 7],\"time\":\"13:45:11\"}");    

        PushBroadcastResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
            System.out.println(response.getPushResult().getData());  // プッシュタスク ID またはスケジュールされたタスク ID
        } catch (ClientException e) {
            e.printStackTrace();
        }

Python サンプルコード

# -*- coding: utf8 -*-

from aliyunsdkcore.client import AcsClient
from aliyunsdkmpaas.request.v20190821 import PushBroadcastRequest
import json
import time

# AcsClient インスタンスを初期化します
client = AcsClient(
  "AccessKey ID",
  "AccessKey Secret",
  "cn-hongkong"
);

# リクエストを初期化し、パラメーターを設定します
request = PushBroadcastRequest.PushBroadcastRequest()
request.set_endpoint("mpaas.cn-hongkong.aliyuncs.com")
request.set_AppId("ONEX570DA89211720")
request.set_WorkspaceId("test")
request.set_TemplateName("broadcastTemplate")
templatekv = {"content":"これはお知らせです"}
request.set_TemplateKeyValue(json.dumps(templatekv))
request.set_DeliveryType(1)
request.set_TaskName("Python ブロードキャストプッシュのテストタスク")
request.set_ExpiredSeconds(600)
request.set_Msgkey(str(time.time()))

# レスポンスを出力します
response = client.do_action_with_exception(request)
print response

Node.js サンプルコード

const sdk = require('@alicloud/mpaas20190821');

const { default: Client, PushBroadcastRequest } = sdk;
// クライアントを作成します。
const client = new Client({
  accessKeyId: 'accessKeyId',
  accessKeySecret: 'AccessKey Secret',
  endpoint: 'mpaas.cn-hongkong.aliyuncs.com',
  apiVersion: '2019-08-21'
});
// リクエストを初期化します。

  const request = new PushBroadcastRequest();
  request.appId = "ONEX570DA89211720";
  request.workspaceId = "test";
  request.templateName= "broadcastTemplate";
  const templatekv = {
    content: 'これはお知らせです',
  };
  request.templateKeyValue = JSON.stringify(templatekv);
  request.deliveryType = 1;
  request.taskName = "Node テストタスク";
  request.expiredSeconds=600;
  const extendedParam = {
    test: 'カスタム拡張パラメーター'
  };
  request.extendedParams = JSON.stringify(extendedParam);

  request.msgkey = String(new Date().valueOf())

// API 操作を呼び出します。
try {
  client.pushBroadcast(request).then(res => {
    console.log('SUCCESS', res);
  }).catch(e => {
    console.log('FAIL', e);
  });
} catch(e) {
  console.log('ERROR', e);
}

PHP サンプルコード

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\MPaaS\MPaaS;
AlibabaCloud::accessKeyClient('accessKeyId', 'accessKeySecret')
    ->regionId('cn-hongkong')
    ->asDefaultClient();

class Demo {
    public function run() {
        try {
               $this->broadcastPush();
        } catch (\Exception $e) {
        }
    }


   public function broadcastPush(){
        $request = MPaaS::v20190821()->pushBroadcast();
        $result = $request->host("mpaas.cn-hongkong.aliyuncs.com")
            // デバッグモードを有効にするかどうかを指定します。
            ->debug(true)
            ->withAppId("ONEX570DA89211720")
            ->withWorkspaceId("test")
            ->withTemplateName("broadcastTemplate")
            ->withTemplateKeyValue(
                json_encode(["content" => "これはお知らせです"])
            )
            ->withDeliveryType(1)
            ->withTaskName("PHP ブロードキャストプッシュのテストタスク")
            ->withExpiredSeconds(600)
            ->withMsgkey("". time())
            ->request();
    }
}

メッセージの取り消し

シンプルプッシュまたはテンプレートプッシュでプッシュされたメッセージは、メッセージ ID で取り消すことができます。マルチプッシュまたはブロードキャストプッシュでプッシュされたメッセージは、タスク ID で取り消すことができます。過去 7 日間にプッシュされたメッセージのみを取り消すことができます。

メッセージ ID による取り消し

シンプルプッシュモードまたはテンプレートプッシュモードでプッシュされたメッセージを取り消します。

リクエストパラメーター

パラメーター

データ型

必須

説明

messageId

String

はい

1578807462788

業務システム内のメッセージ ID。ユーザーがカスタマイズでき、業務システム内でメッセージを一意に識別するために使用されます。

targetId

String

はい

user1024

ターゲット ID。メッセージがデバイスによってプッシュされた場合、ターゲット ID はデバイス ID を指します。メッセージがユーザーによってプッシュされた場合、ターゲット ID はユーザー ID を指します。

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

PushResult

JSON

リクエスト結果

Success

boolean

true

リクエストステータス。Success の値は、PushRresult JSON 文字列に含まれています。

ResultMsg

String

param is invalid

エラーの内容。ResultMsg の値は、PushRresult JSON 文字列に含まれています。

サンプルコード

DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey Secret

        IAcsClient client = new DefaultAcsClient(profile);        

        RevokePushMessageRequest request = new RevokePushMessageRequest();
        request.setAppId("ONEX570DA89211720");
        request.setWorkspaceId("test");
        request.setMessageId("console_1624516744112");  // 業務システム内のメッセージ ID
        request.setTargetId("mpaas_push_demo");         // ターゲット ID

        RevokePushMessageResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }

タスク ID による取り消し

マルチプッシュモードまたはブロードキャストプッシュモードでプッシュされたメッセージを取り消します。

リクエストパラメーター

パラメーター

データ型

必須

taskId

String

はい

20842863

プッシュタスク ID。MPS コンソールでプッシュタスクをクエリするために使用できます。

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

PushResult

JSON

リクエスト結果

Success

boolean

true

リクエストステータス。Success の値は、PushRresult JSON 文字列に含まれています。

ResultMsg

String

param is invalid

エラーの内容。ResultMsg の値は、PushRresult JSON 文字列に含まれています。

サンプルコード

DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey Secret

        IAcsClient client = new DefaultAcsClient(profile);

        RevokePushTaskRequest request = new RevokePushTaskRequest();
        request.setAppId("ONEX570DA89211720");
        request.setWorkspaceId("test");
        request.setTaskId("20842863");     // プッシュタスク ID

        RevokePushTaskResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }

メッセージプッシュの分析

統計データのクエリ

プッシュされたメッセージ、正常にプッシュされたメッセージ、メッセージの到着、開封されたメッセージ、無視されたメッセージなどのメッセージプッシュ統計データをクエリします。

リクエストパラメーター

パラメーター

データ型

必須

説明

appId

String

はい

ONEX570DA89211721

mPaaS アプリ ID

workspaceId

String

はい

test

mPaaS ワークスペース

startTime

long

はい

1619798400000

クエリ対象期間の開始タイムスタンプ。ミリ秒単位で、日単位の精度です。

endTime

long

はい

1624358433000

クエリ対象期間の終了タイムスタンプ。ミリ秒単位で、日単位の精度です。開始時刻と終了時刻の間隔は 90 日を超えることはできません。

platform

String

いいえ

ANDROID

プッシュプラットフォーム。値が渡されない場合、デフォルトですべてのプラットフォームがクエリされます。

有効な値:IOS、ANDROID

channel

String

いいえ

ANDROID

プッシュチャネル。値が渡されない場合、デフォルトですべてのチャネルがクエリされます。

有効な値:IOS、FCM、HMS、MIUI、OPPO、VIVO、ANDROID(セルフビルドチャネル)

type

String

いいえ

SIMPLE

プッシュモード。値が渡されない場合、デフォルトですべてのタイプがクエリされます。

有効な値:SIMPLE、TEMPLATE、MULTIPLE、BROADCAST

taskId

String

いいえ

20842863

プッシュタスク ID

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

ResultContent

JSON

レスポンスコンテンツ

data

JSON

レスポンスコンテンツ。data の値は、ResultContent JSON 文字列に含まれています。

pushTotalNum

float

100

プッシュされたメッセージの数

pushNum

float

100

正常にプッシュされたメッセージの数

arrivalNum

float

100

クライアントに届いたメッセージの数

openNum

float

100

開封されたメッセージの数

openRate

float

100

メッセージ開封率

ignoreNum

float

100

無視されたメッセージの数

ignoreRate

float

100

メッセージ無視率

サンプルコード

DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey Secret
        IAcsClient client = new DefaultAcsClient(profile);
        QueryPushAnalysisCoreIndexRequest request = new QueryPushAnalysisCoreIndexRequest();
        request.setAppId("ONEX570DA89211720");
        request.setWorkspaceId("test");
        request.setStartTime(Long.valueOf("1617206400000"));
        request.setEndTime(Long.valueOf("1624982400000"));
        request.setPlatform("ANDROID");
        request.setChannel("ANDROID");
        request.setType("SIMPLE");
        request.setTaskId("20842863");

        QueryPushAnalysisCoreIndexResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }

プッシュタスクのクエリ

MPS コンソールで作成された、または API の呼び出しによってトリガーされたマルチ/ブロードキャストプッシュタスクをクエリします。

リクエストパラメーター

パラメーター

データ型

必須

説明

appId

String

はい

ONEX570DA89211721

mPaaS アプリ ID

workspaceId

String

はい

test

mPaaS ワークスペース

startTime

long

はい

1619798400000

クエリ対象期間の開始タイムスタンプ。ミリ秒単位で、日単位の精度です。

taskId

String

いいえ

20842863

プッシュタスク ID

taskName

String

いいえ

テストタスク

タスク名

pageNumber

int

いいえ

1

ページ番号。デフォルトは 1 です。

pageSize

int

いいえ

10

ページの総数。デフォルトは 500 です。

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

ResultContent

JSON

レスポンスコンテンツ

data

JSON

レスポンスコンテンツ。data の値は、ResultContent JSON 文字列に含まれています。

taskId

String

20927873

タスク ID

taskName

String

テストタスク

タスク名

templateId

String

9108

テンプレート ID

templateName

String

テストテンプレート

テンプレート名

type

long

3

プッシュモード:

  • 2 – マルチプッシュ

  • 3 – ブロードキャストプッシュ

gmtCreate

long

1630052750000

作成時間

サンプルコード

DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey Secret
        IAcsClient client = new DefaultAcsClient(profile);

        QueryPushAnalysisTaskListRequest request = new QueryPushAnalysisTaskListRequest();
        request.setAppId("ONEX570DA89211721");
        request.setWorkspaceId("default");
        request.setStartTime(Long.valueOf("1617206400000"));
        request.setTaskId("20845212");
        request.setTaskName("Tesk task");
        request.setPageNumber(1);
        request.setPageSize(10);

        QueryPushAnalysisTaskListResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }

プッシュタスク詳細のクエリ

MPS コンソールで作成された、または API の呼び出しによってトリガーされたマルチ/ブロードキャストプッシュタスクの詳細をクエリします。

リクエストパラメーター

パラメーター

データ型

必須

説明

appId

String

はい

ONEX570DA89211721

mPaaS アプリ ID

workspaceId

String

はい

test

mPaaS ワークスペース

taskId

String

はい

20842863

プッシュタスク ID

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

ResultContent

JSON

レスポンスコンテンツ

data

JSON

レスポンスコンテンツ。data の値は、ResultContent JSON 文字列に含まれています。

taskId

long

20927872

タスク ID

pushNum

float

10

プッシュされたメッセージの数

pushSuccessNum

float

10

正常にプッシュされたメッセージの数

pushArrivalNum

float

10

クライアントに届いたメッセージの数

startTime

long

1630052735000

開始時刻(ミリ秒)

endTime

long

1630052831000

終了時刻(ミリ秒)

duration

string

00 時間 01 分 36 秒

プッシュ期間

サンプルコード

DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey Secret
        IAcsClient client = new DefaultAcsClient(profile);

        QueryPushAnalysisTaskDetailRequest request = new QueryPushAnalysisTaskDetailRequest();
        request.setAppId("ONEXPREF4F5C52081557");
        request.setWorkspaceId("default");
        request.setTaskId("20845212");

        QueryPushAnalysisTaskDetailResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }

スケジュールされたプッシュタスクの管理

スケジュールされたプッシュタスクのクエリ

作成されたスケジュールされたプッシュタスク(タイミングプッシュタスクとサイクリックプッシュタスクを含む)をクエリします。

リクエストパラメーター

パラメーター

データ型

必須

説明

appId

String

はい

ONEX570DA89211721

mPaaS アプリ ID

workspaceId

String

はい

test

mPaaS ワークスペース

startTime

long

はい

1619798400000

スケジュールされたプッシュがトリガーされる開始タイムスタンプ。タスクの作成時間ではありません。

endtTime

long

はい

1630425600000

スケジュールされたプッシュがトリガーされる終了タイムスタンプ。

type

int

いいえ

0

プッシュモード:

  • 0 - シンプルプッシュ

  • 1 – テンプレートプッシュ

  • 2 – マルチプッシュ

  • 3 – ブロードキャストプッシュ

uniqueId

String

いいえ

49ec0ed5a2a642bcbe139a2d7a419d6d

スケジュールされたプッシュタスクの一意の ID。

マスタタスク ID を渡すと、すべてのサブタスクの情報が返されます。サブタスク ID を渡すと、対応するサブタスクの情報が返されます。

pageNumber

int

いいえ

1

ページ番号。デフォルトは 1 です。

pageSize

int

いいえ

10

ページの総数。デフォルトは 500 です。

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

ResultContent

JSON

レスポンスコンテンツ

data

JSON

レスポンスコンテンツ。data の値は、ResultContent JSON 文字列に含まれています。

totalCount

int

10

合計数

list

JSONArray

タスク配列

uniqueId

String

56918166720e46e1bcc40195c9ca71db

スケジュールされたプッシュタスクの一意の ID。

  • strategyType の値が 1 の場合、タイミングタスクのマスタタスク ID を指します。

  • strategyType の値が 2 の場合、サイクリックタスクの子タスク ID を指します。

parentId

String

56918166720e46e1bcc40195c9ca71db

スケジュールされたプッシュタスクのマスタ ID。

  • strategyType の値が 1 の場合、タイミングタスクのマスタタスク ID を指します。

  • strategyType の値が 2 の場合、サイクリックタスクのマスタタスク ID を指します。

pushTime

Date

1630486972000

スケジュールされたプッシュ時間

pushTitle

String

テスト

メッセージのタイトル

pushContent

String

テストテキスト

メッセージの本文

type

int

0

プッシュモード:

  • 0 - シンプルプッシュ

  • 1 – テンプレートプッシュ

  • 2 – マルチプッシュ

  • 3 – ブロードキャストプッシュ

deliveryType

int

1

プッシュタイプ:

  • 1 - Android

  • 2 - iOS

  • 3 - UserId

strategyType

int

1

プッシュ戦略:

  • 1 - タイミング

  • 2 - サイクリック

executedStatus

int

0

タスクが実行されたかどうか:

  • 0 - 実行されていない

  • 1 - 実行済み

createType

int

0

タスクの作成方法:

  • 0 - API

  • 1 - コンソール

gmtCreate

Date

1629971346000

作成時間

サンプルコード

DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey Secret
        IAcsClient client = new DefaultAcsClient(profile);

        QueryPushSchedulerListRequest request = new QueryPushSchedulerListRequest();
        request.setAppId("ONEXPREF4F5C52081557");
        request.setWorkspaceId("default");
        request.setStartTime(Long.valueOf("1625068800000"));
        request.setEndTime(Long.valueOf("1630425600000"));
        request.setType(0);
        request.setUniqueId("49ec0ed5a2a642bcbe139a2d7a419d6d");
        request.setPageNumber(1);
        request.setPageSize(10);

        QueryPushSchedulerListResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }

スケジュールされたプッシュタスクのキャンセル

プッシュされていないスケジュールされたプッシュタスク(サイクリックプッシュタスクを含む)をキャンセルします。タスクを一括でキャンセルできます。

リクエストパラメーター

パラメーター

データ型

必須

説明

appId

String

はい

ONEX570DA89211721

mPaaS アプリ ID

workspaceId

String

はい

test

mPaaS ワークスペース

type

int

いいえ

0

スケジュールされたプッシュタスク ID のタイプ。デフォルトは 0 です。

  • 0 - マスタタスク ID。parentId に対応します

  • 1 - サブタスク ID。uniqueId に対応します

uniqueIds

String

はい

714613eb,714613ec,714613ed

スケジュールされたプッシュタスクの一意の ID。複数のタスク ID はカンマ(,)で区切ります。最大 30 個の ID を入力できます。

レスポンスパラメーター

パラメーター

データ型

説明

RequestId

String

B589F4F4-CD68-3CE5-BDA0-6597F33E23916512

リクエスト ID

ResultCode

String

OK

リクエスト結果コード

ResultMessage

String

param is invalid

エラーの説明

ResultContent

String

{714613eb=1,714613ed=0}

キャンセルの結果:

  • 1 - 成功

  • 0 - 失敗

サンプルコード

DefaultProfile.addEndpoint("cn-hongkong", "mpaas", "mpaas.cn-hongkong.aliyuncs.com");
        // DefaultAcsClient インスタンスを作成し、初期化します
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",          // リージョン ID
            "******",      // RAM アカウントの AccessKey ID
            "******"); // RAM アカウントの AccessKey Secret
        IAcsClient client = new DefaultAcsClient(profile);

CancelPushSchedulerRequest request = new CancelPushSchedulerRequest();
        request.setAppId("ONEXPREF4F5C52081557");
        request.setWorkspaceId("default");
        request.setUniqueIds("49ec0ed5a2a642bcbe139a2d7a419d6d, 49ec0ed5a2a642bcbe139a2d7a419d6c");

        CancelPushSchedulerResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getResultCode());
            System.out.println(response.getResultMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }

拡張パラメーター

拡張パラメーターは、メッセージ本文とともにクライアントに渡されます。これらのパラメーターを定義または処理できます。

拡張パラメーターには、次の 3 つのタイプがあります。

  • システム拡張パラメーター

    これらの拡張パラメーターはシステムによって使用されています。これらのパラメーターの値を変更しないでください。システム拡張パラメーターには、notifyTypeactionsilentpushTypetemplateCodechanneltaskId が含まれます。

  • 特定の意味を持つシステム拡張パラメーター

    このタイプの拡張パラメーターはシステムによって使用されています。各パラメーターには特定の意味があります。これらの拡張パラメーターの値を設定できます。次の表に、特定の意味を持つ拡張パラメーターを示します。

    キー

    説明

    sound

    メッセージのカスタム着信音。このパラメーターの値は着信音のパスです。このパラメーターは、Xiaomi スマートフォンと iPhone にのみ適用されます。

    badge

    アプリアイコンのバッジ。その値は特定の数字です。この拡張パラメーターは、メッセージ本文とともにクライアントに渡されます。

    • Android デバイスの場合、バッジロジックを自分で実装する必要があります。

    • iOS デバイスの場合、システムは自動的にバッジロジックを実装します。メッセージがターゲットの携帯電話にプッシュされると、値で指定した番号がアプリアイコンのバッジに表示されます。

    mutable-content

    Apple Push Notification service(APNs)のカスタムプッシュ ID。このパラメーターを含むプッシュ通知は、iOS 10 UNNotificationServiceExtension をサポートしていることを示します。このパラメーターを含まないプッシュ通知は、一般的なプッシュを示します。値を 1 に設定します。

    badge_add_num

    Huawei プッシュチャネルに追加されたプッシュバッジの数。

    badge_class

    Huawei プッシュチャネルのデスクトップアイコンに対応するアクティビティクラス

    big_text

    大きなテキストスタイル。このパラメーターは固定値「1」です。その他の値は無効です。このパラメーターは、Xiaomi デバイスと Huawei デバイスにのみ有効です。

  • ユーザー定義の拡張パラメーター

    上記のシステム拡張パラメーター以外のすべてのパラメーターは、ユーザー定義の拡張パラメーターです。ユーザー定義の拡張パラメーターは、メッセージ本文とともにクライアントに渡されます。これらのパラメーターを定義および処理できます。

結果コード

結果コード

メッセージ

説明

100

SUCCESS

成功

-1

SIGNATURE_MISMATCH

署名が一致しません。

3001

NEED_DELIVERYTOKEN

deliveryToken が空です。

3002

NEED_FILE

ファイルが空です。

3003

NEED_APPID_WORKSPACEID

アプリ ID またはワークスペースが空です。

3007

APPID_WRONG

無効なアプリ ID またはワークスペースです。

3008

OS_TYPE_NOT_SUPPORTED

プッシュプラットフォームがサポートされていません。

3009

DELIVERY_TYPE_NOT_SUPPORTED

deliveryType がサポートされていません。

3012

NEED_USERID

UserId が空です。

3019

TASKNAME_NULL

タスク名が空です。

3020

EXPIREDSECONDS_WRONG

無効なメッセージタイムアウト時間です。

3021

TOKEN_OR_USERID_NULL

ターゲットが空です。

3022

TEMPLATE_NOT_EXIST

テンプレートが存在しません。

3023

TEMPLATEKV_NOT_ENOUGH

テンプレートパラメーターが一致しません。

3024

PAYLOAD_NOT_ENOUGH

タイトルまたはコンテンツが空です。

3025

NEED_TEMPLATE

テンプレートが空です。

3026

EXPIREDTIME_TOO_LONG

メッセージの有効期間が長すぎます。

3028

INVALID_PARAM

無効なパラメーターです。

3029

SINGLE_PUSH_TARGET_TOO_MUCH

ターゲットが多すぎます。

3030

BROADCAST_ONLY_SUPPORT_BY_DEVICE

デバイスによるブロードキャストプッシュのみがサポートされています。

3031

REQUEST_SHOULD_BE_UTF8

リクエスト本文は UTF-8 エンコードである必要があります。

3032

REST_API_SWITCH_NOT_OPEN

プッシュ API が閉じられています。

3033

UNKNOWN_REST_SIGN_TYPE

署名タイプがサポートされていません。

3035

EXTEND_PARAM_TO_MUCH

拡張パラメーターが多すぎます。最大 20 個の拡張パラメーターが許可されています。

3036

TEMPLATE_ALREADY_EXIST

テンプレートは既に存在します。

3037

TEMPLATE_NAME_NULL

テンプレート名が空です。

3038

TEMPLATE_NAME_INVALID

無効なテンプレート名です。

3039

TEMPLATE_CONTENT_INVALID

無効なテンプレートコンテンツです。

3040

TEMPLATE_TITLE_INVALID

無効なテンプレートタイトルです。

3041

TEMPLATE_DESC_INFO_INVALID

無効なテンプレートの説明です。

3042

TEMPLATE_URI_INVALID

無効なテンプレート URI です。

3043

SINGLE_PUSH_CONTENT_TOO_LONG

メッセージ本文が長すぎます。

3044

INVALID_EXTEND_PARAM

無効な拡張パラメーターです。

3049

MULTIPLE_INNER_EXTEND_PARAM_TO_MUCH

マルチプッシュの内部拡張パラメーターの数が 10 を超えています。

3050

MSG_PAYLOAD_TOO_LONG

メッセージ本文が長すぎます。

3051

BROADCAST_ALL_USER_NEED_UNBIND_PERIOD

すべてのユーザー(ログインユーザーとログアウトユーザーの両方を含む)を対象とするブロードキャストプッシュには、アンバインドパラメーターが必要です。

3052

BROADCAST_ALL_USER_UNBIND_PERIOD_INVALID

ブロードキャストプッシュのアンバインドパラメーターが無効です。

3053

BROADCAST_ALL_USER_NOT_SUPPORT_SELFCHANNEL_ANDROID

MPS セルフビルドプッシュチャネルは、すべてのユーザー(ログインユーザーとログアウトユーザーの両方を含む)を対象とするブロードキャストプッシュをサポートしていません。

3054

DELIVERYTOKEN_INVALID

無効な MPS セルフビルドチャネルトークンです。

3055

MULTIPLE_TARGET_NUMBER_TOO_MUCH

プッシュターゲットの数がしきい値を超えています。

3056

TEMPLATE_NUM_TOO_MUCH

メッセージテンプレートの数がしきい値を超えています。

3057

ANDROID_CHANNEL_PARAM_INVALID

無効な androidChannel です。

3058

BADGE_ADD_NUM_INVALID

無効な badge_add_num です。

3059

BADGE_ADD_NUM_NEED_BADGE_CLASS

badge_add_num には badge_class パラメーターが必要です。

9000

SYSTEM_ERROR

システムエラーです。