push

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 31, 2024 License: Apache-2.0 Imports: 22 Imported by: 1

Documentation

Index

Constants

View Source
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】

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 AndroidNotification

type AndroidNotification = notification.Android

Android 平台上的通知。

type Audience

type Audience = audience.Audience

推送设备对象,表示一条推送可以被推送到哪些设备列表。确认推送设备对象,JPush 提供了多种方式,比如:别名、标签、注册 ID、分群、广播等。

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

type Callback = callback.Callback

回调参数。

  • 通过指定 Callback 参数,方便用户临时变更回调 URL 或者回调带上其自定义参数,满足其日常业务需求;
  • 此功能仅针对极光 VIP 用户提供,主要提供消息送达、点击回执数据。

详见文档: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

type CallbackType

type CallbackType = callback.Type

回调数据类型。

type CidGetResult

type CidGetResult = cid.GetResult

获取推送唯一标识 (CID) 结果。

type CustomMessage

type CustomMessage = message.Custom

自定义消息内容。

自定义消息,又称作:应用内消息,透传消息。

  • 此部分内容不会展示到通知栏上,JPush SDK 收到消息内容后透传给 APP,需要 APP 自行处理;
  • iOS 在推送应用内消息通道(非 APNs)获取此部分内容,需 APP 处于前台;
  • 鸿蒙平台(HarmonyOS)从 2024.08.13 开始支持自定义消息,对应 JPush HarmonyOS SDK v1.1.0 版本。

详见文档: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

type FileAudience

type FileAudience = audience.File

【可选】指定文件推送。

type HmosNotification

type HmosNotification = notification.HMOS

鸿蒙(HarmonyOS)平台上的通知。

type InAppMessage

type InAppMessage = message.InApp

应用内增强提醒。

  • 此功能生效需 Android push SDK ≥ v3.9.0、iOS push SDK ≥ v3.4.0,若低于此版本按照原流程执行;
  • 面向于通知栏消息类型,需搭配 Notification 参数一起使用,对于通知权限关闭的用户可设置启用此功能。此功能启用后,当用户前台运行 APP 时,会通过应用内消息的方式展示通知栏消息内容。

详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#inapp_message%EF%BC%9A%E5%BA%94%E7%94%A8%E5%86%85%E5%A2%9E%E5%BC%BA%E6%8F%90%E9%86%92

type IosNotification

type IosNotification = notification.IOS

iOS 平台上的 APNs 通知。

type LiveActivityEvent

type LiveActivityEvent = liveactivity.Event

实时活动事件类型。

type LiveActivityIosAlertMessage

type LiveActivityIosAlertMessage = liveactivity.IosAlertMessage

iOS 实时活动通知内容。

type LiveActivityIosMessage

type LiveActivityIosMessage = liveactivity.IosMessage

iOS 的实时活动消息。

type LiveActivityMessage

type LiveActivityMessage = liveactivity.Message

实时活动内容。

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 NotificationIntent

type NotificationIntent = notification.Intent

指定通知点击跳转页面。

type PortalExtraOptions

type PortalExtraOptions = options.PortalExtraOptions

极光 WebPortal 的附加属性。

type QuickAppNotification

type QuickAppNotification = notification.QuickApp

快应用平台上的通知。

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 SendParam

type SendParam = send.Param

推送参数。

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

type SmsMessage = message.SMS

短信渠道补充送达内容。

  • 需要先把用户的手机号码与设备标识 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 TemplateParam

type TemplateParam = send.TemplateParam

模板参数(创建模板时,开发者设置的变量参数)

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 长连接不在线时没法及时下发的消息,可以通过厂商通道下发以厂商通知形式展示,及时提醒到用户。 极光内部会有去重处理,您不用担心消息重复下发问题。

详见文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#notification_3rd%EF%BC%9A%E8%87%AA%E5%AE%9A%E4%B9%89%E6%B6%88%E6%81%AF%E8%BD%AC%E5%8E%82%E5%95%86%E9%80%9A%E7%9F%A5

type ThirdPartyChannel

type ThirdPartyChannel = options.ThirdPartyChannel

推送请求下发通道。

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL