device

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2025 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIv3

type APIv3 interface {
	// 查询设备的标签、别名与手机号码
	//  - 功能说明:获取当前设备的所有属性,包含 tags、alias 与 mobile。
	//	- 调用地址:GET `/v3/devices/{registrationID}`,`registrationID` 为设备标识 Registration ID。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E6%9F%A5%E8%AF%A2%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8E%E6%A0%87%E7%AD%BE
	GetDevice(ctx context.Context, registrationID string) (*DeviceGetResult, error)

	// 设置设备的标签、别名与手机号码
	//  - 功能说明:更新当前设备的指定属性,当前支持 tags、alias 与 mobile;使用短信业务,请结合服务端【SMS_MESSAGE】字段:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push#sms_message%EF%BC%9A%E7%9F%AD%E4%BF%A1
	//	- 调用地址:POST `/v3/devices/{registrationID}`,`registrationID` 为设备标识 Registration ID。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E8%AE%BE%E7%BD%AE%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8E%E6%A0%87%E7%AD%BE
	SetDevice(ctx context.Context, registrationID string, param *DeviceSetParam) (*DeviceSetResult, error)

	// 清空设备的标签
	//  - 功能说明:清空当前设备的 tags 属性。
	//	- 调用地址:POST `/v3/devices/{registrationID}`,`registrationID` 为设备标识 Registration ID。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E8%AE%BE%E7%BD%AE%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8E%E6%A0%87%E7%AD%BE
	ClearDeviceTags(ctx context.Context, registrationID string) (*DeviceClearResult, error)

	// 清空设备的别名
	//  - 功能说明:清空当前设备的 alias 属性。
	//	- 调用地址:POST `/v3/devices/{registrationID}`,`registrationID` 为设备标识 Registration ID。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E8%AE%BE%E7%BD%AE%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8E%E6%A0%87%E7%AD%BE
	ClearDeviceAlias(ctx context.Context, registrationID string) (*DeviceClearResult, error)

	// 清空设备的手机号码
	//  - 功能说明:清空当前设备的 mobile 属性。
	//	- 调用地址:POST `/v3/devices/{registrationID}`,`registrationID` 为设备标识 Registration ID。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E8%AE%BE%E7%BD%AE%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8E%E6%A0%87%E7%AD%BE
	ClearDeviceMobile(ctx context.Context, registrationID string) (*DeviceClearResult, error)

	// 清空设备的标签与别名
	//  - 功能说明:清空当前设备的 tags 与 alias 属性。
	//	- 调用地址:POST `/v3/devices/{registrationID}`,`registrationID` 为设备标识 Registration ID。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E8%AE%BE%E7%BD%AE%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8E%E6%A0%87%E7%AD%BE
	ClearDeviceTagsAndAlias(ctx context.Context, registrationID string) (*DeviceClearResult, error)

	// 清空设备的标签与手机号码
	//  - 功能说明:清空当前设备的 tags 和 mobile 属性。
	//	- 调用地址:POST `/v3/devices/{registrationID}`,`registrationID` 为设备标识 Registration ID。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E8%AE%BE%E7%BD%AE%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8E%E6%A0%87%E7%AD%BE
	ClearDeviceTagsAndMobile(ctx context.Context, registrationID string) (*DeviceClearResult, error)

	// 清空设备的别名与手机号码
	//  - 功能说明:清空当前设备的 alias 与 mobile 属性。
	//	- 调用地址:POST `/v3/devices/{registrationID}`
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E8%AE%BE%E7%BD%AE%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8E%E6%A0%87%E7%AD%BE
	ClearDeviceAliasAndMobile(ctx context.Context, registrationID string) (*DeviceClearResult, error)

	// 清空设备的标签、别名与手机号码
	//  - 功能说明:清空当前设备的 tags、alias 与 mobile 属性。
	//	- 调用地址:POST `/v3/devices/{registrationID}`,`registrationID` 为设备标识 Registration ID。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E8%AE%BE%E7%BD%AE%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8E%E6%A0%87%E7%AD%BE
	ClearDeviceAll(ctx context.Context, registrationID string) (*DeviceClearResult, error)

	// 获取用户在线状态(VIP)
	//  - 功能说明:查询用户是否在线。
	//	- 调用地址:POST `/v3/devices/status`,`registrationIDs` 为必填参数,需要获取在线状态的设备标识 Registration ID 集合,最多支持 1000 个。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E5%9C%A8%E7%BA%BF%E7%8A%B6%E6%80%81%EF%BC%88vip%EF%BC%89
	GetDeviceStatus(ctx context.Context, registrationIDs []string) (*DeviceStatusGetResult, error)

	// 查询标签列表
	//  - 功能说明:获取当前应用的所有标签列表,每个平台最多返回 100 个。
	//	- 调用地址:GET `/v3/tags`
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E6%9F%A5%E8%AF%A2%E6%A0%87%E7%AD%BE%E5%88%97%E8%A1%A8
	GetTags(ctx context.Context) (*TagsGetResult, error)

	// 查询设备与标签的绑定关系
	//  - 功能说明:查询某个设备是否在 tag 下。
	//	- 调用地址:GET `/v3/tags/{tag}/registration_ids/{registrationID}`,`tag` 为指定的标签值;`registrationID` 为设备标识 Registration ID。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E6%9F%A5%E8%AF%A2%E8%AE%BE%E5%A4%87%E4%B8%8E%E6%A0%87%E7%AD%BE%E7%9A%84%E7%BB%91%E5%AE%9A%E5%85%B3%E7%B3%BB
	GetTag(ctx context.Context, tag string, registrationID string) (*TagGetResult, error)

	// 更新标签
	//  - 功能说明:为一个标签添加或者删除设备。
	//	- 调用地址:POST `/v3/tags/{tag}`,`tag` 为指定的标签值;`adds`/`removes` 为增加或删除的设备标识 Registration ID 集合,最多各支持 1000 个,不能同时为空。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E6%9B%B4%E6%96%B0%E6%A0%87%E7%AD%BE
	SetTag(ctx context.Context, tag string, adds, removes []string) (*TagSetResult, error)

	// 删除标签
	//  - 功能说明:删除一个标签,以及标签与设备之间的关联关系。
	//	- 调用地址:DELETE `/v3/tags/{tag}`,`tag` 为指定的标签值;`plats` 为可选参数,不填则默认为所有平台。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E5%88%A0%E9%99%A4%E6%A0%87%E7%AD%BE
	DeleteTag(ctx context.Context, tag string, plats ...platform.Platform) (*TagDeleteResult, error)

	// 查询别名
	//  - 功能说明:获取指定 alias 下的设备,正常情况下最多输出 10 个,超过 10 个默认输出 10 个。
	//	- 调用地址:GET `/v3/aliases/{alias}`,`alias` 为指定的别名值;`plats` 为可选参数,不填则默认为所有平台。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E6%9F%A5%E8%AF%A2%E5%88%AB%E5%90%8D
	GetAlias(ctx context.Context, alias string, plats ...platform.Platform) (*AliasGetResult, error)

	// 删除别名
	//  - 功能说明:删除一个别名,以及该别名与设备的绑定关系。
	//	- 调用地址:DELETE `/v3/aliases/{alias}`,`alias` 为指定的别名值;`plats` 为可选参数,不填则默认为所有平台。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E5%88%A0%E9%99%A4%E5%88%AB%E5%90%8D
	DeleteAlias(ctx context.Context, alias string, plats ...platform.Platform) (*AliasDeleteResult, error)

	// 删除设备的别名
	//  - 功能说明:批量解绑设备与别名之间的关系。
	//	- 调用地址:POST `/v3/aliases/{alias}`,`alias` 为指定的别名值;`registrationIDs` 为必填参数,需要和该 `alias` 解除绑定的设备标识 Registration ID 值集合,最多支持 1000 个。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device#%E5%88%A0%E9%99%A4%E8%AE%BE%E5%A4%87%E7%9A%84%E5%88%AB%E5%90%8D
	DeleteAliases(ctx context.Context, alias string, registrationIDs []string) (*AliasesDeleteResult, error)
}

Device API v3【极光推送 > REST API > 标签别名 API】

使用时需要注意不要让服务端设置的标签又被客户端给覆盖了:

  • 如果不是很熟悉 tag、alias 的逻辑的话,建议只使用客户端或服务端二者中的一种;
  • 如果是两边同时使用,请确认自己的应用可以处理好标签和别名的同步。

需要了解 tag、alias 的详细信息,请参考对应客户端平台的 API 说明:

包含了 device、tag 和 alias 三组 API,其中:

  • device 用于查询/设置设备的各种属性,包含 tags 和 alias,手机号码 mobile;
  • tag 用于查询/设置/删除设备的标签;
  • alias 用于查询/设置/删除设备的别名。

需要用到的关键信息还有 Registration ID:

type APIv3Builder

type APIv3Builder struct {
	// contains filtered or unexported fields
}

用于构建和配置 Device 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.HostJPushDeviceV3。

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 AliasDeleteResult

type AliasDeleteResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
}

func (*AliasDeleteResult) IsSuccess

func (rs *AliasDeleteResult) IsSuccess() bool

type AliasGetData

type AliasGetData struct {
	RegistrationID string             `json:"registration_id"`  // 设备标识 Registration ID
	Platform       platform.Platform  `json:"platform"`         // 平台
	LastOnlineDate *jiguang.LocalDate `json:"last_online_date"` // 最后一次上线日期
}

AliasGetData 查询别名成功返回的数据结构

type AliasGetResult

type AliasGetResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	Data          []AliasGetData `json:"data,omitempty"`
}

func (*AliasGetResult) IsSuccess

func (rs *AliasGetResult) IsSuccess() bool

type AliasesDeleteError

type AliasesDeleteError struct {
	api.CodeError
	IllegalRIDs []string `json:"illegal_rids,omitempty"` // 非法 Registration ID 集合
}

删除设备的别名失败错误

func (*AliasesDeleteError) Error

func (e *AliasesDeleteError) Error() string

func (*AliasesDeleteError) String

func (e *AliasesDeleteError) String() string

type AliasesDeleteResult

type AliasesDeleteResult struct {
	*api.Response `json:"-"`
	Error         *AliasesDeleteError `json:"error,omitempty"`
}

func (*AliasesDeleteResult) IsSuccess

func (rs *AliasesDeleteResult) IsSuccess() bool

type DeviceClearResult

type DeviceClearResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
}

func (*DeviceClearResult) IsSuccess

func (rs *DeviceClearResult) IsSuccess() bool

type DeviceGetResult

type DeviceGetResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	Tags          []string       `json:"tags,omitempty"`   // 设备标签
	Alias         string         `json:"alias,omitempty"`  // 设备别名
	Mobile        string         `json:"mobile,omitempty"` // 设备手机号码
}

func (*DeviceGetResult) IsSuccess

func (rs *DeviceGetResult) IsSuccess() bool

type DeviceSetParam

type DeviceSetParam struct {
	// 设备标签,可使用 TagsForDeviceSetParam 或 空字符串 设置;
	//  - 支持 add, remove 或者 空字符串 - 当设置为 空字符串 的时候,表示清空所有的 tags;add/remove 下是增加或删除指定的 tag;
	//  - 一次 add/remove tag 的上限均为 100 个,且总长度均不能超过 1000 字节;
	//  - 可以多次调用 API 设置,一个设备(Registration ID)能设置的 tag 上限为 1000 个,应用 tag 总数没有限制。
	Tags interface{} `json:"tags,omitempty"`
	// 更新设备的别名属性;当别名为 空字符串 时,删除指定设备的别名;
	//  - 注意:极光于 2020/03/10 对「别名设置」的上限进行限制,最多允许绑定 10 个设备,超过将报错 7015。
	Alias *string `json:"alias,omitempty"`
	// 设备关联的手机号码;当 mobile 为 空字符串 时,表示清空设备关联的手机号码。
	Mobile *string `json:"mobile,omitempty"`
}

type DeviceSetResult

type DeviceSetResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
}

func (*DeviceSetResult) IsSuccess

func (rs *DeviceSetResult) IsSuccess() bool

type DeviceStatusGetResult

type DeviceStatusGetResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	// 用户在线状态结果
	//  - key 为 Registration ID;
	//  - 对于无效的或者不属于请求该 API 的认证 appKey 的 Registration ID,它的返回的结果为空。
	Result map[string]DeviceStatusResult `json:"-"`
}

func (*DeviceStatusGetResult) IsSuccess

func (rs *DeviceStatusGetResult) IsSuccess() bool

func (DeviceStatusGetResult) MarshalJSON

func (rs DeviceStatusGetResult) MarshalJSON() ([]byte, error)

func (*DeviceStatusGetResult) UnmarshalJSON

func (rs *DeviceStatusGetResult) UnmarshalJSON(data []byte) error

type DeviceStatusResult

type DeviceStatusResult struct {
	// 10 分钟之内是否在线
	Online bool `json:"online"`
	// 最后一次在线时间
	//  - 10 分钟之内在线时,不返回该字段;
	//  - 10 分钟之内不在线,且该字段不返回时,则表示最后一次在线时间是在两天之前。
	LastOnlineTime *jiguang.LocalDateTime `json:"last_online_time,omitempty"`
}

用户在线状态结果

type TagDeleteResult

type TagDeleteResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
}

func (*TagDeleteResult) IsSuccess

func (rs *TagDeleteResult) IsSuccess() bool

type TagGetResult

type TagGetResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	Result        *bool          `json:"result,omitempty"` // 设备是否与标签绑定
}

func (*TagGetResult) IsSuccess

func (rs *TagGetResult) IsSuccess() bool

type TagSetError

type TagSetError struct {
	api.CodeError
	IllegalRIDs []string `json:"illegal_rids,omitempty"` // 非法 Registration ID 集合
}

更新标签失败错误

func (*TagSetError) Error

func (e *TagSetError) Error() string

func (*TagSetError) String

func (e *TagSetError) String() string

type TagSetResult

type TagSetResult struct {
	*api.Response `json:"-"`
	Error         *TagSetError `json:"error,omitempty"`
}

func (*TagSetResult) IsSuccess

func (rs *TagSetResult) IsSuccess() bool

type TagsForDeviceSetParam

type TagsForDeviceSetParam struct {
	Add    []string `json:"add,omitempty"`    // 增加的标签列表
	Remove []string `json:"remove,omitempty"` // 删除的标签列表
}

设置设备标签,提供给 DeviceSetParam.Tags 字段使用。

type TagsGetResult

type TagsGetResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	Tags          []string       `json:"tags,omitempty"` // 标签列表
}

func (*TagsGetResult) IsSuccess

func (rs *TagsGetResult) IsSuccess() bool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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