Tencent Push Notification Service Configuration

For customers who cannot use APN or FCM, Medable incorporates the Tencent notification system.

The Tencent push notification API has been integrated into the "endpoints.push.tpns" key of the Cortex script notification module send options.

All Android parameters are available, however, the behavior of a few has been slightly modified.

For Tencent's full API specification, please see https://intl.cloud.tencent.com/document/product/1024/33764.

Requirements

  • Cortex API 2.15.8

  • Axon 4.14.3+

  • PATAND 4.13.300 (Android app for study patients)

Configuration

  1. Obtain Tencent Push Notification Service credentials

  2. Add credentials to Android Patient App

    • Access ID

    • Secret Key

  3. For Cortex 2.16 and earlier, patch the c_axon_room_event_library Axon script

    • In the App Platform open Cortex -> Settings -> Scripts

    • Select the Axon - Room Event Library script

    • Patch the sendIncomingCallNotification function to explicitly include messageType and customContent Tencent Push Notification Service options

    • Press the "Save Script" button at the bottom of the screen

Verification

  • Log in to the Android Patient App and verify the user has a Tencent token

  • Send a test notification

Modifications

Android

  • tpns.audience_type defaults to "token"

  • tpns.message.content defaults to the value of the options.message parameter

  • tpns.message.android.custom_content is set to the value of the payload if the payload is provided

Example

const notifications = require('notifications'),
      payload = { key: 'value' },
      options = {
        message: 'message', 
        endpoints: { 
          push: { 
            tpns: { 
              upload_id: 'upload_id', 
              message_type: 'notify', 
              message: { 
                title: 'title', 
                content: 'content', 
                xg_media_resources: 'url', 
                android: {
                  n_ch_id: 'channelId', 
                  n_ch_name: 'channelName', 
                  ring: 1, 
                  ring_raw: 'ringtoneFile',
                  vibrate: 0,
                  lights: 1,
                  clearable: 1
                }
              }
            }
          }
        },
        recipient: 'accountId'
      }

return notifications.send(payload, options)

Last updated