シングルプッシュ
前提条件¶
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 発表および夜間通知は、ユーザーの同意を得るために必要な項目です。
| ブール値 | O | |
identifiers | 識別子情報(最大100)識別子構造および例を確認してください。 | identifier[] | O | ||
ゲーム | gameid | ゲームID | 文字列 | O | |
appids | AppIDのリスト マッピングされたAppIDが無効な場合は何も送信されません。 推奨事項
| String[] | X | ||
enableLocale | 各言語のロケールを有効にするかどうか
true
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 |
識別子の例¶
メッセージ構造¶
カテゴリ | フィールド名 | 説明 | タイプ | 必須 | |
---|---|---|---|---|---|
メッセージ | 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ガイドを参照してください。
| 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
- 応答