用户模型的所有服务器端 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 中可见和可用的分段。与从控制台创建分段一样,您可以传入带有多个 AND
或 OR
运算符的过滤器。
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')