跳转到主要内容
用户模型的所有服务器端 SDK 目前都处于 beta 版本。在生产应用中使用服务器端 SDK 时请特别注意。

应用管理

createApp()

创建一个新的 OneSignal 应用。
const app = await OnesignalClient.createApp({
  name: "My App"
})

getApp()

查看单个 OneSignal 应用的详细信息。
const app = await OnesignalClient.getApp("APP_ID")

getApps()

查看您当前所有 OneSignal 应用的详细信息。
const apps = await OneSignal.getApps()

updateApp()

更新现有 OneSignal 应用的名称或配置设置
void await OnesignalClient.updateApp('APP_ID', {
  ...originalApp,
  name: 'Updated name',
})

分段

需要付费计划才能在服务器上程序化创建分段。免费计划用户可以继续在 OneSignal 控制台内创建分段。

createSegments()

创建在控制台和 API 中可见和可用的分段。与从控制台创建分段一样,您可以传入带有多个 ANDOR 运算符的过滤器。
const { id } = await OnesignalClient.createSegment("APP_ID", {
  name: "SEGMENT_NAME",
  filters: [{ field: "last_session", relation: ">", hours_ago: "1" }],
})

getSegments()

获取从控制台和 REST API 创建的所有分段。
const { segments, total_count } = await OnesignalClient.getSegments("APP_ID")

deleteSegments()

删除分段。请注意,这不会删除给定分段中的设备或用户。
const { success } = await OnesignalClient.deleteSegment(
  "APP_ID",
  "SEGMENT_ID",
)

结果

结果仅在我们的服务器上存储 30 天。如果您希望保留这些数据,必须每月导出,因为超过 30 天的结果会从我们的服务器中删除。

getOutcomes()

查看与您的应用关联的所有结果的详细信息。
const { outcomes } = await OnesignalClient.getOutcomes(
  "APP_ID",
  "os__click.count",
)

//outcomes =【{"id": "os__click", "value": 0, "aggregation": "count"}】

实时活动

updateLiveActivity()

更新指定的实时活动。
const { id } = await OnesignalClient.updateLiveActivity(
  "APP_ID",
  "ACTIVITY_ID",
  {
    event: "update",
    name: "ACTIVITY_NAME",
    event_updates: {
      homeScore: 3,
      awayScore: 1,
    },
  },
)

// The `event_updates` shape must match struct implementing `ActivityAttributes`

用户模型

createUser()

创建用户,可选择创建用户拥有的订阅和别名。载荷中提供的别名将用于查找现有用户。
const { identity, subscriptions, properties } = await OnesignalClient.createUser(appId, {
  identity: {
    external_id: "EXTERNAL_ID",
  },
  properties: {
    language: "en",
    tags: {
      role: "admin",
    },
  },
})

// The `identity` object will include the OneSignal ID

fetchUser()

返回与给定别名匹配的现有用户。
const user = await OnesignalClient.getUser(
  appId,
  "external_id",
  testingExternalId,
)

// The `user` object includes all identities, user properties, and subscriptions for the user

updateUser()

更新与给定别名匹配的现有用户。要更新数据标签,请修改用户对象上的 tags 属性。
const updateUserResult = await OnesignalClient.updateUser(
  'APP_ID',
  'label',
  'id',
  {
    properties: {
      tags: { DataTagKey: 'New Value' },
    },
  }
)

deleteUser()

删除与给定别名匹配的现有用户。
void (await OnesignalClient.deleteUser(
  "APP_ID",
  "ALIAS_KEY",
  "ALIAS_VALUE",
))

fetchUserIdentity()

列出与给定别名匹配的现有用户的所有别名。
const aliases = await OneSignal.fetchUserIdentityAsync('APP_ID', 'SUBSCRIPTION_ID')

identifyUserByAlias()

向与给定别名匹配的现有用户添加一个或多个别名。
void await OneSignal.identifyUserByAliasAsync('APP_ID', 'ALIAS_LABEL', 'ALIAS_ID', {
	identity: {
   	'ALIAS_LABEL_01': 'ALIAS_ID_01',
    'ALIAS_LABEL_02': 'ALIAS_ID_02',
    'ALIAS_LABEL_03': 'ALIAS_ID_03'
  }
})
如果提供的别名标签不存在,将自动为您创建。

getEligibleIams()

订阅有资格通过 SDK 显示的应用内消息清单。
const manifest = await OneSignal.getEligibleIamsAsync('APP_ID', 'SUBSCRIPTION_ID')

通知

createNotification()

向您的用户发送通知。
const notification = new OneSignal.Notification()
notification.appId = 'APP_ID'
notification.name = 'NOTIFICATION_NAME'
notification.contents = {
	en: 'NOTIFICATION_MESSAGE'
}

// For Huawei devices, set the `headings` key
notification.headings = {
	en: 'NOTIFICATION_MESSAGE'
}

const { id, external_id, errors } = await OneSignal.createNotificationAsync(notification)

getNotifications()

查看多个通知的详细信息。
const { totalCount, offset, limit, notifications } = await OneSignal.getNotificationsAsync('APP_ID')

getNotification()

查看单个通知的详细信息以及与其关联的结果。
const notification = await OneSignal.getNotificationAsync('APP_ID', 'NOTIFICATION_ID')

cancelNotification()

停止计划或当前正在发送的通知。
void await OneSignal.cancelNotificationAsync('APP_ID', 'NOTIFICATION_ID')

getNotificationHistory()

查看通知的收件人。
const recipientHistory = await OneSignal.getNotificationHistoryAsync('APP_ID', 'NOTIFICATION_ID')
如果在发送日期的七(7)天内使用,将返回收到消息的所有设备;但是,七天后将无法获得历史记录。收到成功响应后,您可以:
  • 轮询 URL 直到 .csv 文件可用。大多数导出在三分钟或更短时间内完成;我们建议以 10 秒间隔轮询 URL
  • 如果您更愿意收到电子邮件,请提供您希望接收电子邮件报告的电子邮件地址。针对少于 1,000 个收件人的消息不会记录”已发送”事件,但会记录”已点击”事件。
通过导航到 OneSignal 控制台 -> 设置 -> 集成 并激活通过 OneSignal API 发送历史记录来启用。

订阅

createSubscription()

为现有用户创建新订阅。
const subscription: CreateSubscriptionRequestBody = {
    subscription: {
        type: '<SUBSCRIPTION_TYPE>',
        token: '<PUSH_TOKEN | EMAIL_ADDRESS | PHONE_NUMBER>',
    }
}

const response = await OneSignal.createSubscription('APP_ID', 'ALIAS_LABEL', 'ALIAS_ID', subscription)

订阅类型

  • Email
  • SMS
  • iOSPush
  • AndroidPush
  • HauweiPush
  • FireOSPush
  • WindowsPush
  • macOSPush
  • ChromeExtensionPush
  • Chrome
  • SafariLegacyPush
  • SafariPush
  • FirefoxPush

updateSubscription()

更新现有订阅。
const updatedSubscription: UpdateSubscriptionRequestBody = {
    subscription: {
        type: '<SUBSCRIPTION_TYPE>',
        token: '<PUSH_TOKEN | EMAIL_ADDRESS | PHONE_NUMBER>',
    }
}

await OneSignal.updateSubscription('APP_ID', 'SUBSCRIPTION_ID', updatedSubscription)

transferSubscription()

将订阅从一个用户转移到另一个用户。
const subscription: TransferSubscriptionRequestBody = {
    identity: otherUserIdentityObject	// ID of user to transfer to
};

const response = await OneSignal.transferSubscription('APP_ID', 'SUBSCRIPTION_ID', subscription);

deleteSubscription()

删除现有订阅。
await OneSignal.deleteSubscription('APP_ID', 'SUBSCRIPTION_ID')

I