コンテンツにスキップ

シングルプッシュ

前提条件

Single Push APIと同期するには、認証トークン(API KEY)を発行する必要があります。すでにキーを持っている場合は、追加の権限をリクエストしてください。認証トークンのリクエストと発行方法については、Hive Server API > Notification > Push v4 > Authenticationを参照してください。

Note

シングルプッシュAPIは非同期であり、順番に処理されます、APIリクエスト > トークンルックアップ > 送信

APIリクエスト: リクエストデータを検証し、リクエストに対するレスポンスコードを返します。 トークン検索: リクエストデータに対してプッシュトークンを検索します。トークンがない状況も考えられます。 * 送信: 各マーケットのプッシュサーバー(ADM、APNS、FCMなど)にデータを転送します。マーケットから受け取ったレスポンスは処理結果を示します。 トークン検索および送信ステップで処理が失敗した場合、プッシュサーバーを呼び出したクライアントにレスポンスは転送されません。 データを送信してから10分以内にプッシュを受け取らない場合は、ソリューションアーキテクトチーム、Com2uSプラットフォームにお問い合わせください。

URL

サーバー URL
プロダクション https://notification.withhive.com
サンドボックス https://sandbox-notification.withhive.com

基本データとリクエスト変数

メソッド POST
URL /push/send
区分 フィールド名 説明 タイプ 必須
ヘッダー Content-Type application/json;charset=utf-8
Authorization bearer {{API KEY}}
ボディ notice

通知を送信するかどうか(デフォルト: 'false')

      true
    • 発表通知として送信します。
    • ユーザーの同意に応じて通知を送信します。
      false
    • ゲーム通知として送信します。
    • ユーザーの同意に関係なく通知を送信します。

発表および夜間通知は、ユーザーの同意を得るために必要な項目です。

  • ユーザーが発表通知を受け取ることに同意しない場合、発表として設定されたすべての通知は送信がブロックされます。
  • 夜間通知を受け取ることに同意するのは、発表通知を受け取ることに同意した後のみ有効です。そうでない場合、発表として設定されたすべての通知は夜間に送信がブロックされます。夜間は午後9時から午前8時までです。

ブール値 O
identifiers 識別子情報(最大100)識別子構造およびを確認してください。 identifier[] O
ゲーム gameid ゲームID 文字列 O
appids

AppIDのリスト マッピングされたAppIDが無効な場合は何も送信されません。

推奨事項

  • デバイスベースのID(did):マッピングされたAppIDを追加します。
  • アカウントベースのID(playerId、vid、uid):すべてのマッピングされたAppIDのリストを追加します。
  • さまざまなタイプのIDの場合:識別子構造を参照して優先順位を確認します。

String[] X
enableLocale

各言語のロケールを有効にするかどうか

    true
  • ターゲットユーザーが設定した同じ言語でメッセージを送信します。これはトークンと設定された言語コードに基づいています。
  • トークンを保存する際に言語を決定します。
  • 優先順位が最も高い:ゲーム言語
  • 2番目の優先順位:デバイス言語(ゲーム言語が送信されない限り)
    false
  • 言語ロケールを無視し、ペイロードフィールドの単一の値として送信します。

ブール値 O
payload single enableLocale=falseの場合の単一フィールドへのリクエストメッセージ構造を以下で確認してください。 メッセージ O
defaultLanguage enableLocale=trueの場合のデフォルト言語の値を設定します。 文字列
locale {{LANGUAGE}} enableLocale=trueの場合のロケールフィールドの値を設定します。単一フィールドのメッセージ情報と同じデータです。 メッセージ
option 以下のオプション情報を参照してください。 オプション X
Note

適切な単一プッシュ受信のためには、appidsおよびidentifiersフィールドにはデータを1つだけ入力することをお勧めします。 + 検索条件を指定できないため、リクエストに複数のidentifiersやappidsが含まれているとプッシュ配信が遅れる可能性があります。 * identifier値には優先度の高い値を指定することをお勧めし、did値だけでidentifierを構成することは避けてください。 * gameフィールドにgameidのみが指定されたリクエストは避けるべきです。 + gameidに含まれるすべてのappidsが検索されるため、appidsフィールドに情報がない場合、プッシュ配信が遅れる可能性があります。

識別子の構造

区分 フィールド名 説明 タイプ 必須
識別子 識別子 playerId 4つの識別子のうちの1つを含める必要があります。playerId、vid、uid、didの順に優先されます。 Long O
vid
uid
did

識別子の例

[
  {
    "playerId":51234,
    "vid":11232,
    "did":1234
  }
]

メッセージ構造

カテゴリ フィールド名 説明 タイプ 必須
メッセージ android title タイトル 文字列 O
message 本文 文字列 O
messageExpanded 拡張本文 文字列 O
imageUrl 画像URL 文字列 X
ticker ティッカー 文字列 X
summaryText サマリーテキスト 文字列 X
ios title タイトル 文字列 O
message 本文 文字列 O
mediaUrl 画像URL 文字列 X

オプション情報

カテゴリ フィールド名 説明 タイプ 必須
オプション badge プッシュ通知を受信したときにアプリアイコンに表示される数値(デフォルト: 1) 整数 X
overwrite Androidでプッシュ上書き機能を使用するかどうか(デフォルト: false) ブール値 X
collapseKey プッシュ上書き機能が有効なときに使用されるキー値(数値の文字列形式: "123") 文字列 X
engagement ユーザーエンゲージメント 文字列 X
comment テキスト 文字列 X
groupKey これは、iOSおよびAndroidデバイスで受信したときに通知をグループ化するために使用されるグループキーの値です。デバイスOSに設定された通知オプションは、デフォルトで適用されます。オプションの詳細については、以下の文書を参照してください。 String X
android icon プッシュ通知がユーザーのデバイスに受信されたときに表示されるアイコン画像のファイル名。この画像ファイルは/src/main/res/drawableに存在する必要があります。サポートされている画像ファイル形式はこちらで確認できます。 ウェブから画像を表示したい場合は、ファイル名の代わりにこのフィールドに画像のURLを入力してください。このフィールドが空の場合、アプリアイコン画像が表示されます。 String X
sound プッシュ通知がユーザーのデバイスに受信されたときに再生される通知音のファイル名。アプリバンドルに含まれる音声ファイルを指定でき、音声ファイルは/src/main/res/rawに存在する必要があります。このフィールドが空の場合、システムのデフォルト音が使用されます。 String X
priority Androidデバイスに送信されるメッセージの優先度。この優先度は、FCMからの概念であるメッセージ配信のタイミングを制御します。NORMALまたはHIGHの値を持つことができ、デフォルトはNORMALです。詳細については、Firebaseガイドを参照してください。
  • NORMAL = データメッセージのデフォルトの優先度。通常、優先されたメッセージは、デバイスがスリープモードでないときに即座に送信されます。デバイスがスリープモードのときは、バッテリーを節約するために配信が遅れる場合があります。スリープモードを終了するまで配信が遅れることがあります。新しいメール通知、UIの同期維持、バックグラウンドアプリのデータ同期など、時間に敏感でないメッセージには通常の配信優先度を選択してください。
  • HIGH = FCMは高優先度メッセージを即座に送信し、必要に応じてデバイスをスリープモードから起こすことができ、限られた処理タスクを実行し、非常に制限されたネットワークアクセスを含みます。高優先度メッセージは通常、アプリとのユーザーインタラクションや通知に関係しています。
enum(NORMAL, HIGH) X
ios sound プッシュ通知がユーザーのデバイスに受信されたときに再生される通知音のファイル名。このサウンドファイルはアプリコンテナのLibrary/Soundsまたはメインアプリバンドルに存在する必要があります。このフィールドが空の場合、自動的に「default」に設定され、ユーザーのAppleデバイスで< a href="https://developer.apple.com/documentation/usernotifications/unnotificationsound">システムデフォルトサウンドが使用されます。 String X

出力結果

部門 フィールド名 説明
ヘッダー コンテンツタイプ application/json;charset=utf-8
UUID {{UUID}}
本文 - 成功した場合、本文は空です

応答ステートコード

キー 説明
200 成功 (ボディは空です。)
400 不正なリクエスト POSTデータが省略されています。JSON形式エラー必須要素が省略されているか無効です。
401 認証されていない リクエストメッセージのAuthorizationヘッダーが省略されているか無効です。Authorizationキー(API KEY)が登録されていません。関連APIへのアクセス権がありません。
403 禁止されています Authorizationヘッダーの認証方式が「Bearer」ではありません。(Bearerのみサポート)
404 見つかりません リクエストURLが間違っています。
500 サーバー内部エラー サーバー上の内部エラー
502 不正なゲートウェイ プッシュゲートウェイサーバーが過負荷です。ネットワークが誤った方法で接続されています。
503 サービス利用不可 APIサーバーまたは認証サーバーがフリーズしています。

サンプルコード

  • Call ("enableLocale":false)

    curl -L -v
    > -d '{"notice":false,"identifiers":[{"vid":19239,"did":300010915}],"game":{"gameid":"com.com2us.hivesdk","appids":["com.com2us.hivesdk.normal.freefull.google.global.android.common"]},"enableLocale":false,"payload":{"single":{"android":{"title":"TEST","message":"TEST","messageExpanded":"","imageUrl":"","ticker":"","summaryText":""},"ios":{"title":"","message":"","mediaUrl":""}},"option":{"badge":"1","overwrite":false,"collapseKey":"","engagement":"","groupKey": "", "android":{"icon":"","sound":"", "priority": "normal"},"ios":{"sound":""}}}}'
    > -H "Content-Type: application/json"
    > -H "Authorization: Bearer {API KEY}"
    > https://sandbox-notification.qpyou.cn/push/send
    
  • Call ("enableLocale":true)

    {
        "notice": false,
        "identifiers": [
            {
                "playerId": 30000028045
    }
    ],
        "game": {
            "gameid": "com.com2us.hivesdk",
            "appids": [
    "com.com2us.hivesdk.normal.freefull.google.global.android.common",
    "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal"
    ]
        },
        "enableLocale": true,
        "payload": {
            "defaultLanguage": "en",
            "locale": {
                "ko": {
                    "android": {
                        "title": "test_Korean_title",
                        "message": "test_Korean_message"
                    },
                    "ios": {
                        "title": "test_Korean_title",
                        "message": "test_Korean_message"
                    },
                },
                "en": {
                    "android": {
                        "title": "test_English title",
                        "message": "test_English message"
                    },
                    "ios": {
                        "title": "test_English title",
                        "message": "test_English message"
                    },
                }
            },
            "option": {
                "badge": 1,
                "overwrite": true,
                "collapseKey": "99",
                "groupKey": "",
                "android": {
                    "icon": "GoogleIcon",
                    "sound": "GoogleSound",
                    "priority": "normal"
                },
                "ios": {
                    "sound": "AppleSound"
                }
            }
        }
    }
    
Note

サーバーがログをすぐに確認できるように、スペースなしで連続してコールデータを送信することをお勧めします

リクエスト

> POST /push/send HTTP/1.1
> User-Agent: curl/7.29.0
> Host: sandbox-notification.qpyou.cn
> Accept: */*
> Content-Type: application/json
> Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NDE1NzMyOTcsImp0aSI6ImFkbWluaXN0cmF0b3IifQ.23nG9RnbuOwnMbRSebBi2i-Qt_fOfqU_vUKUZ2JJlWU
> Content-Length: 502
  • 応答
< HTTP/1.1 200 OK
< content-length: 0
< Content-Type: application/json
< UUID: 3bc6b414-e2df-40d6-8006-9d2308a6edf9