跳轉至

单次推送

先決條件

要與單一推送 API 同步,請確保發出授權令牌(API KEY)。如果您已經擁有該密鑰,請要求額外的權限。請參閱 Hive 伺服器 API > 通知 > 推送 v4 > 認證 以檢查如何請求和發出授權令牌。

Note

單一 Puch API 是非同步的,並按順序處理,API 請求 > 令牌查找 > 發送

API 請求:驗證請求數據並返回請求的響應代碼。 令牌查找:查找請求數據的推送令牌。可能會有沒有令牌的情況。 * 發送:將數據傳輸到每個市場的推送伺服器(例如 ADM、APNS、FCM)。從市場收到的響應顯示處理結果。 當令牌查找和發送步驟中的處理失敗時,不會將響應轉發給調用推送伺服器的客戶端。 如果您在發送數據後 10 分鐘內未收到推送,請聯繫 解決方案架構師團隊,Com2uS 平台

網址

伺服器 URL
生產環境 https://notification.withhive.com
沙盒環境 https://sandbox-notification.withhive.com

基本數據和請求變量

方法 POST
網址 /push/send
區域 欄位名稱 描述 類型 是否必填
標頭 Content-Type application/json;charset=utf-8
授權 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
  • 以目標用戶設置的相同語言發送消息。這基於令牌和設置的語言代碼。
  • 它決定存儲令牌時的語言。
  • 優先級最高:遊戲語言
  • 第二優先級:設備語言(除非發送遊戲語言)
    false
  • 忽略語言地區設置,並作為有效負載欄位的單一值發送。

布林值 O
有效負載 single 如果enableLocale=false請求單一欄位,檢查下面的消息結構 消息 O
defaultLanguage 如果enableLocale=true,則設置為默認語言的值。 字串
locale {{LANGUAGE}} 如果enableLocale=true,則設置為地區欄位的值,與單一欄位的消息信息相同。 消息
option 請參考下面的選項資訊 選項 X
Note

為了適當的單次推送接收,建議在 appids 和 identifiers 欄位中僅輸入一個數據。 + 由於無法指定搜索條件,如果請求包含多個 identifiers 和 appids,推送交付可能會延遲。 * 建議為 identifier 值指定一個高優先級的值,並避免僅用 did 值配置 identifier。 * 必須避免在遊戲欄位中僅指定 gameid 的請求。 + 如果 appids 欄位中沒有信息,推送交付可能會延遲,因為所有包含在 gameid 中的 appids 都會被搜索。

識別符結構

區域 欄位名稱 描述 類型 必填
識別碼 識別碼 playerId 應包含四個識別碼中的一個,優先順序為 playerId、vid、uid 和 did。 長整數 O
vid
uid
did

標識範例

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

訊息結構

類別 欄位名稱 描述 類型 必填
訊息 android title 標題 字串 O
message 內容 字串 O
messageExpanded 擴展內容 字串 O
imageUrl 圖片網址 字串 X
ticker 提示 字串 X
summaryText 摘要文字 字串 X
ios title 標題 字串 O
message 內容 字串 O
mediaUrl 圖片網址 字串 X

選項資訊

類別 欄位名稱 描述 類型 必填
選項 badge 當接收到推播通知時顯示在應用程式圖示上的數值(預設:1) 整數 X
overwrite 是否在 Android 上使用推播覆蓋功能(預設:false) 布林值 X
collapseKey 啟用推播覆蓋功能時使用的鍵值(數字的字串格式:"123") 字串 X
engagement 用戶參與度 字串 X
comment 文本 字串 X
groupKey 這是用於在 iOS 和 Android 設備上接收通知時將通知分組在一起的組鍵值。設備操作系統上設置的通知選項將默認應用。欲了解有關選項的更多詳細信息,請參考以下文件。 String X
android 圖示 當用戶的設備收到推播通知時出現的圖示影像的檔案名稱。影像檔案必須存在於/src/main/res/drawable中。支援的影像檔案格式可以在這裡找到。 如果您想從網路顯示影像,請在此欄位輸入影像的網址,而不是檔案名稱。如果此欄位為空,將顯示應用程式圖示影像。 字串 X
聲音 當用戶的設備收到推播通知時將播放的通知聲音的檔案名稱。您可以指定包含在應用程式包中的聲音檔案,聲音檔案必須存在於/src/main/res/raw中。如果此欄位為空,將使用系統預設聲音。 字串 X
優先權 發送到 Android 設備的消息優先級。此優先級控制消息傳遞的時間,這是 FCM 的一個概念。它可以有 NORMAL 或 HIGH 的值,默認為 NORMAL。欲了解更多詳情,請參閱Firebase 指南
  • NORMAL = 數據消息的默認優先級。正常優先的消息在設備不處於睡眠模式時會立即發送。當設備處於睡眠模式時,為了節省電池,交付可能會延遲,直到設備退出睡眠模式。對於不敏感於時間的消息,例如新電子郵件通知、保持 UI 同步和背景應用數據同步,請選擇正常交付優先級。
  • 高優先級 = FCM 嘗試立即發送高優先級消息,並在必要時可以喚醒設備以執行有限的處理任務,包括非常有限的網絡訪問。高優先級消息通常涉及用戶與應用程序的交互或通知。
enum(正常, 高) X
ios 聲音 用戶設備收到推送通知時將播放的通知聲音的文件名。聲音文件必須存在於應用程序容器的 Library/Sounds 或主應用程序包中。如果此字段為空,則將自動設置為“默認”,使用用戶 Apple 設備上的 系統默認聲音 字符串 X

輸出結果

部門 欄位名稱 描述
標頭 內容類型 application/json;charset=utf-8
UUID {{UUID}}
主體 - 如果成功,主體為空

回應狀態碼

描述
200 成功 (主體為空。)
400 錯誤的請求 POST 數據被省略。JSON 格式錯誤。必需的元素被省略或無效。
401 未授權 請求消息中的授權標頭被省略或無效。授權密鑰 (API KEY) 未註冊。對相關 API 沒有訪問權限。
403 禁止 授權標頭的身份驗證方案不是 "Bearer"。(僅支持 Bearer)
404 找不到 請求的 URL 錯誤。
500 內部伺服器錯誤 伺服器上發生內部錯誤。
502 錯誤的網關 推送網關伺服器過載。網絡連接錯誤。
503 服務不可用 API 伺服器或身份驗證伺服器凍結。

範例代碼

  • 呼叫 ("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":"測試","message":"測試","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
    
  • 呼叫 ("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