Documentation ¶
Index ¶
- Constants
- type APIv3
- type APIv3Builder
- func (b *APIv3Builder) Build() (APIv3, error)
- func (b *APIv3Builder) DisableHttpLogging() *APIv3Builder
- func (b *APIv3Builder) SetAppKey(appKey string) *APIv3Builder
- func (b *APIv3Builder) SetClient(client api.Client) *APIv3Builder
- func (b *APIv3Builder) SetHost(host string) *APIv3Builder
- func (b *APIv3Builder) SetHttpLogLevel(httpLogLevel api.HttpLogLevel) *APIv3Builder
- func (b *APIv3Builder) SetLogger(logger jiguang.Logger) *APIv3Builder
- func (b *APIv3Builder) SetMasterSecret(masterSecret string) *APIv3Builder
- type AndroidNotification
- type Audience
- type BatchPushParam
- type BatchPushResult
- type BatchSendError
- type BatchSendResult
- type Callback
- type CallbackType
- type CidGetResult
- type CustomMessage
- type FileAudience
- type HmosNotification
- type InAppMessage
- type IosNotification
- type LiveActivityEvent
- type LiveActivityIosAlertMessage
- type LiveActivityIosMessage
- type LiveActivityMessage
- type MessageQuota
- type MessageQuotaDetail
- type Notification
- type NotificationIntent
- type Options
- type PortalExtraOptions
- type QuickAppNotification
- type QuotaData
- type QuotaGetResult
- type SendParam
- type SendResult
- type SmsMessage
- type TemplateParam
- type TemplatePushDetail
- type TemplateSendData
- type TemplateSendResult
- type ThirdNotification
- type ThirdPartyChannel
- type ThirdPartyChannelOptions
- type WithdrawMessageResult
Constants ¶
const ( BroadcastAuds = audience.All // 广播推送,表示推送给所有设备 (all)。 HmosPushTypeAlert = hmos.PushTypeAlert // 华为场景化消息类型:通知消息 (0) HmosPushTypeSubscribe = hmos.PushTypeSubscribe // 华为场景化消息类型:授权订阅消息 (0) HmosPushTypeFormUpdate = hmos.PushTypeFormUpdate // 华为场景化消息类型:卡片刷新消息 (1) HmosPushTypeExtension = hmos.PushTypeExtension // 华为场景化消息类型:通知扩展消息 (2) HmosPushTypeBackground = hmos.PushTypeBackground // 华为场景化消息类型:后台消息 (6) HmosPushTypeLiveView = hmos.PushTypeLiveView // 华为场景化消息类型:实况窗消息 (7) HmosPushTypeVoIPCall = hmos.PushTypeVoIPCall // 华为场景化消息类型:应用内通话消息 (10) LiveActivityEventStart = liveactivity.EventStart // 实时活动事件类型:start 创建 LiveActivityEventUpdate = liveactivity.EventUpdate // 实时活动事件类型:update 更新 LiveActivityEventEnd = liveactivity.EventEnd // 实时活动事件类型:end 结束 CallbackTypeReceived = callback.Received // 回调数据类型:送达回执 (1) CallbackTypeClicked = callback.Clicked // 回调数据类型:点击回执 (2) CallbackTypePush = callback.Push // 回调数据类型:推送成功回执 (8) )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIv3 ¶
type APIv3 interface { // 普通推送 // - 功能说明:向某单个设备或者某设备列表推送一条通知或者消息。推送的内容只能是 JSON 表示的一个推送对象。 // - 调用地址:POST `/v3/push` // - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push Send(ctx context.Context, param *SendParam) (*SendResult, error) // 文件推送(文件立即推送) // - 功能说明:支持指定文件唯一标识(fileID)进行推送,文件唯一标识(fileID)可以参考 File API v3 的 文件上传接口 获得。 // - 调用地址:POST `/v3/push/file` // - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_advanced#%E6%96%87%E4%BB%B6%E6%8E%A8%E9%80%81-api // 注意事项: // 1. “文件定时推送” 请使用 ScheduleSend 接口; // 2. 厂商配额查询 API 接口频率和推送 API 接口频率共享,消耗推送 API 接口频率; // 3. 建议创建推送任务 5 分钟后再执行文件删除操作,否则推送任务可能会失败。 SendByFile(ctx context.Context, param *SendParam) (*SendResult, error) // 推送校验 // - 功能说明:该 API 只用于验证推送调用是否能够成功,与推送 API 的区别在于:不向用户发送任何消息。 // - 调用地址:POST `/v3/push/validate` // - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_advanced#%E6%8E%A8%E9%80%81%E6%A0%A1%E9%AA%8C-api ValidateSend(ctx context.Context, param *SendParam) (*SendResult, error) // 批量单推(Registration ID 方式) // - 功能说明:如果您在给每个用户的推送内容都不同的情况下,可以使用此接口。使用此接口前,您需要配合使用 GetCidForPush 接口提前获取到 CID 池。 // - 调用地址:POST `/v3/push/batch/regid/single`,`pushList` 的 key 为 CID 值,最多支持填写 1000 个。 // - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_single BatchSendByRegistrationID(ctx context.Context, pushList map[string]BatchPushParam) (*BatchSendResult, error) // 批量单推(Alias 方式) // - 功能说明:如果您在给每个用户的推送内容都不同的情况下,可以使用此接口。使用此接口前,您需要配合使用 GetCidForPush 接口提前获取到 CID 池。 // - 调用地址:POST `/v3/push/batch/alias/single`,`pushList` 的 key 为 CID 值,最多支持填写 1000 个。 // - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_single BatchSendByAlias(ctx context.Context, pushList map[string]BatchPushParam) (*BatchSendResult, error) // 普通模板推送(VIP) - 指定模板 ID,模板参数(如有设置),进行立即推送。 // - 功能说明:开发者可以将推送时所需参数通过极光 WebPortal 页面提前配置好,形成一套 “推送模板”,然后通过此 API 接口,指定 “模板 ID” 推送,大大降低开发难度,节省开发调试时间,节省服务器带宽成本。 // - 调用地址:POST `/v3/push/template`,`id` 为模板 ID(创建模板后,由极光服务器生成),`params` 为模板参数(创建模板时,开发者设置的变量参数)列表。 // - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_template#%E6%8C%87%E5%AE%9A%E6%A8%A1%E6%9D%BF%E3%80%90%E7%AB%8B%E5%8D%B3%E6%8E%A8%E9%80%81%E3%80%91 // 注意事项:不支持多种不同 Audience 类型的组合(Tags、AndTags、NotTags 除外)! // 1. params 数组里面,同一个推送里面的 Audience 不允许不同类型组合(Tags、AndTags、NotTags 除外); // 2. params 数组里面,不同推送的 Audience 也不允许不同类型(Tags、AndTags、NotTags 除外); // 3. 如果是文件方式推送,一次推送只支持指定一个文件; // 4. 如果是地理围栏方式推送,一次推送仅支持指定一个地理围栏。 // 也就是说:假设数组长度是 3,那么就表示有 3 个推送,这 3 个推送要么都是 Registration ID 方式推送,要么都是 Alias 方式推送。 TemplateSend(ctx context.Context, id string, params []TemplateParam) (*TemplateSendResult, error) // 获取推送唯一标识 (CID) // - 功能说明:CID 是用于防止 API 调用端重试造成服务端的重复推送而定义的一个推送参数。用户使用一个 CID 推送后,再次使用相同的 CID 进行推送,则会直接返回第一次成功推送的结果,不会再次进行推送。 // CID 的有效期为 1 天,格式为:{appkey}-{uuid},在使用 CID 之前,必须通过接口获取你的 CID 池。 // - 调用地址:GET `/v3/push/cid?type=push&count={count}`,如 count < 1 则自动重置为 1。 // - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_advanced#%E8%8E%B7%E5%8F%96%E6%8E%A8%E9%80%81%E5%94%AF%E4%B8%80%E6%A0%87%E8%AF%86cid GetCidForPush(ctx context.Context, count int) (*CidGetResult, error) // 推送撤销 // - 功能说明:撤销操作首先会从服务端尝试撤销(Android 消息,排队中/发送中状态可以服务端撤销; // iOS 消息,排队中状态可以服务端撤销);其次,针对 Push SDK(JPush Android SDK v3.5.0 及以上和 JPush iOS SDK v3.2.8 及以上), // 会尝试从设备端撤销已展示但未被点击的消息。 // - 调用地址:DELETE `/v3/push/{msgID}` // - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_advanced#%E6%8E%A8%E9%80%81%E6%92%A4%E9%94%80-api WithdrawMessage(ctx context.Context, msgID string) (*WithdrawMessageResult, error) // 厂商配额查询 // - 功能说明:厂商为了控制应用推送消息的频率,会根据应用在厂商的日联网数计算每天推送数量上限。 // 目前已知小米、OPPO、vivo 都有每天的额度控制,额度可以在厂商后台查询,也可以通过极光 WebPortal 控制台查询; // 为了进一步方便开发,极光汇总了三个平台的查询接口,供开发者调用查询。 // - 调用地址:GET `/v3/push/quota` // - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_advanced#%E5%8E%82%E5%95%86%E9%85%8D%E9%A2%9D%E6%9F%A5%E8%AF%A2-api // 注意:厂商配额查询 API 接口频率和 Push API 接口频率共享,消耗 Push API 接口频率。 GetQuota(ctx context.Context) (*QuotaGetResult, error) // 自定义推送:如果遇到 Send 接口没有及时补充字段的情况,可以自行构建 JSON,调用此接口。 CustomSend(ctx context.Context, param interface{}) (*SendResult, error) // 自定义文件推送:如果遇到 SendByFile 接口没有及时补充字段的情况,可以自行构建 JSON,调用此接口。 CustomSendByFile(ctx context.Context, param interface{}) (*SendResult, error) // 自定义推送校验:如果遇到 ValidateSend 接口没有及时补充字段的情况,可以自行构建 JSON,调用此接口。 ValidateCustomSend(ctx context.Context, param interface{}) (*SendResult, error) // contains filtered or unexported methods }
Push API v3【极光推送 > REST API > 推送 API】
- 功能说明:包括普通推送、定时推送、文件推送、批量单推、模板推送、自定义推送等相关 API。
- 极光文档:https://docs.jiguang.cn/jpush/server/push/push
type APIv3Builder ¶
type APIv3Builder struct {
// contains filtered or unexported fields
}
用于构建和配置 Push API v3 访问客户端的构建器。
func NewAPIv3Builder ¶
func NewAPIv3Builder() *APIv3Builder
func (*APIv3Builder) Build ¶
func (b *APIv3Builder) Build() (APIv3, error)
func (*APIv3Builder) DisableHttpLogging ¶
func (b *APIv3Builder) DisableHttpLogging() *APIv3Builder
【可选】禁用 API 的 HTTP 日志记录,即不记录 API 的 HTTP 请求和响应的日志信息。
func (*APIv3Builder) SetAppKey ¶
func (b *APIv3Builder) SetAppKey(appKey string) *APIv3Builder
【必填】设置 API 的应用标识。
func (*APIv3Builder) SetClient ¶
func (b *APIv3Builder) SetClient(client api.Client) *APIv3Builder
【可选】设置 API 的客户端,用于发送 HTTP 请求,默认值为 api.DefaultClient。
func (*APIv3Builder) SetHost ¶
func (b *APIv3Builder) SetHost(host string) *APIv3Builder
【可选】设置 API 的 Host 基础 URL,默认值为 api.HostJPushPushV3。
func (*APIv3Builder) SetHttpLogLevel ¶
func (b *APIv3Builder) SetHttpLogLevel(httpLogLevel api.HttpLogLevel) *APIv3Builder
【可选】设置 API 的 HTTP 日志记录级别,用于指定记录 API 的 HTTP 请求和响应的日志信息的详细程度,默认值为 api.HttpLogLevelBasic。
- 可用的级别:api.HttpLogLevelNone、api.HttpLogLevelBasic、api.HttpLogLevelHeaders、api.HttpLogLevelFull;
- 若要禁用 HTTP 日志记录,可使用 DisableHttpLogging。
func (*APIv3Builder) SetLogger ¶
func (b *APIv3Builder) SetLogger(logger jiguang.Logger) *APIv3Builder
【可选】设置 API 的日志记录器,默认值为 api.DefaultLogger。
func (*APIv3Builder) SetMasterSecret ¶
func (b *APIv3Builder) SetMasterSecret(masterSecret string) *APIv3Builder
【必填】设置 API 的应用主密钥。
type BatchPushParam ¶
type BatchPushParam struct { // 【必填】推送平台,支持 2 种类型值: // - platform.All:推送到所有平台; // - platform.Android、platform.IOS、platform.HMOS、platform.QuickApp 的组合列表:指定特定推送平台。 Platform interface{} `json:"platform"` // 【必填】推送目标,此处填写的是 Registration ID 值或者 Alias 值。 Target string `json:"target"` // 【可选】推送可选项。 // - 详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#options%EF%BC%9A%E5%8F%AF%E9%80%89%E5%8F%82%E6%95%B0。 Options *options.Options `json:"options,omitempty"` // 【可选】通知内容,是被推送到客户端的内容;与 CustomMessage 一起二者必须有其一,可以二者并存。 // - 详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#notification%EF%BC%9A%E9%80%9A%E7%9F%A5。 Notification *notification.Notification `json:"notification,omitempty"` // 【可选】自定义消息内容,是被推送到客户端的内容;与 Notification 一起二者必须有其一,可以二者并存。 // - 详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#message%EF%BC%9A%E8%87%AA%E5%AE%9A%E4%B9%89%E6%B6%88%E6%81%AF。 CustomMessage *message.Custom `json:"message,omitempty"` // 【可选】短信渠道补充送达内容。 // - 详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#sms_message%EF%BC%9A%E7%9F%AD%E4%BF%A1。 SmsMessage *message.SMS `json:"sms_message,omitempty"` // 【可选】回调参数。 // - 详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#callback%EF%BC%9A%E5%9B%9E%E8%B0%83%E5%8F%82%E6%95%B0。 Callback *callback.Callback `json:"callback,omitempty"` }
批量推送参数。
type BatchPushResult ¶
type BatchPushResult struct { MsgID string `json:"msg_id,omitempty"` // 推送消息 ID Error *BatchSendError `json:"error,omitempty"` // 错误信息 }
type BatchSendError ¶
type BatchSendError struct { api.CodeError IllegalRIDs []string `json:"illegal_rids,omitempty"` // 非法 Registration ID 集合 }
批量单推失败错误
func (*BatchSendError) Error ¶
func (e *BatchSendError) Error() string
func (*BatchSendError) String ¶
func (e *BatchSendError) String() string
type BatchSendResult ¶
type BatchSendResult struct { *api.Response `json:"-"` Error *api.CodeError `json:"error,omitempty"` SendResult map[string]BatchPushResult `json:"-"` // key 为 CID 值。 }
func (*BatchSendResult) IsSuccess ¶
func (rs *BatchSendResult) IsSuccess() bool
func (BatchSendResult) MarshalJSON ¶
func (rs BatchSendResult) MarshalJSON() ([]byte, error)
func (*BatchSendResult) UnmarshalJSON ¶
func (rs *BatchSendResult) UnmarshalJSON(data []byte) error
type Callback ¶
回调参数。
- 通过指定 Callback 参数,方便用户临时变更回调 URL 或者回调带上其自定义参数,满足其日常业务需求;
- 此功能仅针对极光 VIP 用户提供,主要提供消息送达、点击回执数据。
type CustomMessage ¶
自定义消息内容。
自定义消息,又称作:应用内消息,透传消息。
- 此部分内容不会展示到通知栏上,JPush SDK 收到消息内容后透传给 APP,需要 APP 自行处理;
- iOS 在推送应用内消息通道(非 APNs)获取此部分内容,需 APP 处于前台;
- 鸿蒙平台(HarmonyOS)从 2024.08.13 开始支持自定义消息,对应 JPush HarmonyOS SDK v1.1.0 版本。
type FileAudience ¶
【可选】指定文件推送。
- 可用于包括 SendByFile(文件立即推送)和 ScheduleSend(文件定时推送)等相关接口。
- 详见【文件推送 API】:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_advanced#%E6%96%87%E4%BB%B6%E6%8E%A8%E9%80%81-api。
type InAppMessage ¶
应用内增强提醒。
- 此功能生效需 Android push SDK ≥ v3.9.0、iOS push SDK ≥ v3.4.0,若低于此版本按照原流程执行;
- 面向于通知栏消息类型,需搭配 Notification 参数一起使用,对于通知权限关闭的用户可设置启用此功能。此功能启用后,当用户前台运行 APP 时,会通过应用内消息的方式展示通知栏消息内容。
type LiveActivityIosAlertMessage ¶
type LiveActivityIosAlertMessage = liveactivity.IosAlertMessage
iOS 实时活动通知内容。
type LiveActivityMessage ¶
type LiveActivityMessage = liveactivity.Message
实时活动内容。
- 实时活动消息要求使用 iOS P8 证书,对应【极光 WebPortal 集成设置中 iOS 鉴权方式需要选择「Token Authentication 配置」】方式:https://docs.jiguang.cn/jpush/console/push_setting/integration_set#ios。
- 详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#live_activity%EF%BC%9A%E5%AE%9E%E6%97%B6%E6%B4%BB%E5%8A%A8%E6%B6%88%E6%81%AF。
type MessageQuota ¶
type MessageQuota struct { System *MessageQuotaDetail `json:"system,omitempty"` // 系统消息 Operation *MessageQuotaDetail `json:"operation,omitempty"` // 运营消息 }
消息配额
type MessageQuotaDetail ¶
type MessageQuotaDetail struct { Total *int64 `json:"total,omitempty"` // 总配额,开通了不限量时,返回 -1 Used *int64 `json:"used,omitempty"` // 已使用配额,开通了不限量时,返回 -1 }
消息配额详情
type Notification ¶
type Notification = notification.Notification
通知内容。
- “通知” 对象,是一条推送的实体内容对象之一(另一个是 “消息”),是会作为 “通知” 推送到客户端的。
详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#notification%EF%BC%9A%E9%80%9A%E7%9F%A5。
type QuotaData ¶
type QuotaData struct { Xiaomi *MessageQuota `json:"xiaomi_quota,omitempty"` // 小米配额 OPPO *MessageQuota `json:"oppo_quota,omitempty"` // OPPO 配额 Vivo *MessageQuota `json:"vivo_quota,omitempty"` // vivo 配额 }
厂商推送消息配额数据
type QuotaGetResult ¶
type QuotaGetResult struct { *api.Response `json:"-"` Error *api.CodeError `json:"error,omitempty"` Data *QuotaData `json:"data,omitempty"` // 厂商推送消息配额数据 }
func (*QuotaGetResult) IsSuccess ¶
func (rs *QuotaGetResult) IsSuccess() bool
func (QuotaGetResult) MarshalJSON ¶
func (rs QuotaGetResult) MarshalJSON() ([]byte, error)
func (*QuotaGetResult) UnmarshalJSON ¶
func (rs *QuotaGetResult) UnmarshalJSON(data []byte) error
type SendResult ¶
type SendResult struct { *api.Response `json:"-"` Error *api.CodeError `json:"error,omitempty"` MsgID string `json:"msg_id,omitempty"` // 推送消息 ID SendNo string `json:"sendno,omitempty"` // 推送序号 }
func (*SendResult) IsSuccess ¶
func (rs *SendResult) IsSuccess() bool
type SmsMessage ¶
短信渠道补充送达内容。
- 需要先把用户的手机号码与设备标识 Registration ID 匹配;
- 短信补发:在指定时间之内,判断推送是否成功,若没有达到成功标准则补发短信,请设置 DelayTime 为非 0 值;
- 短信并发:极光推送支持同时下发推送和短信,请设置 DelayTime 为 0。
详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#sms_message%EF%BC%9A%E7%9F%AD%E4%BF%A1。
type TemplatePushDetail ¶
type TemplatePushDetail struct { Error *api.CodeError `json:"error,omitempty"` // 推送失败时的错误信息。 MessageID string `json:"message_id,omitempty"` // 推送消息 ID。 TraceID string `json:"trace_id,omitempty"` // 请求时指定的标识。 }
模板推送结果明细。
func (*TemplatePushDetail) IsSuccess ¶
func (rs *TemplatePushDetail) IsSuccess() bool
func (TemplatePushDetail) MarshalJSON ¶
func (rs TemplatePushDetail) MarshalJSON() ([]byte, error)
func (*TemplatePushDetail) UnmarshalJSON ¶
func (rs *TemplatePushDetail) UnmarshalJSON(data []byte) error
type TemplateSendData ¶
type TemplateSendData struct {
PushList []TemplatePushDetail `json:"push_list"` // 推送列表结果。
}
模板推送结果数据。
type TemplateSendResult ¶
type TemplateSendResult struct { *api.Response `json:"-"` Error *api.CodeError `json:"error,omitempty"` Data *TemplateSendData `json:"data,omitempty"` // 模板推送结果数据 }
func (*TemplateSendResult) IsSuccess ¶
func (rs *TemplateSendResult) IsSuccess() bool
func (TemplateSendResult) MarshalJSON ¶
func (rs TemplateSendResult) MarshalJSON() ([]byte, error)
func (*TemplateSendResult) UnmarshalJSON ¶
func (rs *TemplateSendResult) UnmarshalJSON(data []byte) error
type ThirdNotification ¶
type ThirdNotification = notification.Third
自定义消息转厂商通知内容。
Push API 发起自定义消息类型的推送请求时,针对 Android 设备,如果 APP 长连接不在线,则消息没法及时的下发,针对这种情况,极光推出了 “自定义消息转厂商通知” 的功能。
也就是说,针对用户一些重要的自定义消息,可以申请开通极光 VIP 厂商通道功能,开通后,通过 APP 长连接不在线时没法及时下发的消息,可以通过厂商通道下发以厂商通知形式展示,及时提醒到用户。 极光内部会有去重处理,您不用担心消息重复下发问题。
type ThirdPartyChannelOptions ¶
type ThirdPartyChannelOptions = options.ThirdPartyChannelOptions
推送请求下发通道的策略和属性参数。
type WithdrawMessageResult ¶
type WithdrawMessageResult struct { *api.Response `json:"-"` Error *api.CodeError `json:"error,omitempty"` }
func (*WithdrawMessageResult) IsSuccess ¶
func (rs *WithdrawMessageResult) IsSuccess() bool