| 限定符和类型 | 方法和说明 |
|---|---|
ChatResponse |
AiBotFunction.chat(@NotBlank(message="signature \u4e0d\u5e94\u8be5\u4e3a\u7a7a") String signature,
@NotBlank(message="\u7528\u6237\u67e5\u8be2\u5185\u5bb9\u4e0d\u80fd\u4e3a\u7a7a") String query,
AiBotEnvEnum env,
List<String> firstPrioritySkills,
List<String> secondPrioritySkills)
智能对话接口
对话平台问答策略一共有三段: 第一段“精准命中”:用户问题得分大于机器人账号阈值,此时为精准名准,status字段为 FAQ、CONTEXT_FAQ、GENERAL_FAQ 等值 第二段“问题推荐”:用户问题得分小于机器人账号阈值,但大于该阈值与推荐阈值的乘积,此时为问题推荐,status字段为FAQ_RECOMMEND,且此时options会有相应的推荐结果 第三段“未命中”:用户问题得分小于机器人账号阈值与与推荐阈值的乘积, 此时为未命中,status字段为NOMATCH |
WeChatAiBotSignatureResponse |
AiBotFunction.signature(@NotBlank(message="\u7528\u6237id\u4e0d\u80fd\u4e3a\u7a7a") String userId)
步骤一
获取signature接口 后续所有的 ai bot 业务都需要使用此签名,记得动态更新 |
| 限定符和类型 | 方法和说明 |
|---|---|
WeChatResponse |
OpenApiManager.clean() |
ApiResponse |
OpenApiManager.selectQuota(@NotBlank(message="cgiPath\u4e0d\u80fd\u4e3a\u7a7a") String cgiPath) |
ApiRequestRecord |
OpenApiManager.selectRid(@NotBlank(message="rid\u4e0d\u53ef\u4ee5\u4e3a\u7a7a") String rid) |
| 限定符和类型 | 方法和说明 |
|---|---|
WeChatResponse |
WebPageAuthorizationManager.checkAccessToken(@NotBlank(message="\u7528\u6237\u7684id\u4e0d\u80fd\u4e3a\u7a7a") String openId,
@NotBlank(message="\u6388\u6743token\u4e0d\u80fd\u4e3a\u7a7a") String accessToken)
检验授权凭证(access_token)是否有效
|
AuthAccessTokenResponse |
WebPageAuthorizationManager.getAuthorizeAccessToken(@NotBlank(message="\u5fae\u4fe1\u6388\u6743code\u4e0d\u80fd\u4e3a\u7a7a") String code)
第二步:通过 code 换取网页授权access_token
首先请注意,这里通过 code 换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。
|
AuthUserInfoResponse |
WebPageAuthorizationManager.getUserInfo(@NotBlank(message="\u7528\u6237\u7684id\u4e0d\u80fd\u4e3a\u7a7a") String openId,
@NotBlank(message="\u6388\u6743token\u4e0d\u80fd\u4e3a\u7a7a") String accessToken,
@NotNull(message="\u8bed\u8a00\u4e0d\u80fd\u4e3a\u7a7a") LanguageEnum languageEnum)
第四步:拉取用户信息(需 scope 为 snsapi_userinfo)
如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和 openid 拉取用户信息了。
|
AuthAccessTokenResponse |
WebPageAuthorizationManager.refreshToken(@NotBlank(message="\u5f85\u5237\u65b0\u5f85token\u4e0d\u80fd\u4e3a\u7a7a") String token)
第三步:刷新access_token(如果需要)
由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,
refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。
|
| 限定符和类型 | 方法和说明 |
|---|---|
WeChatResponse |
PermanentMaterialManager.deleteMaterial(@NotBlank(message="\u5220\u9664\u7d20\u6750id\u4e0d\u80fd\u4e3a\u7a7a") String mediaId)
删除素材
|
byte[] |
PermanentMaterialManager.download(@NotBlank(message="\u4e0b\u8f7d\u7d20\u6750id\u4e0d\u80fd\u4e3a\u7a7a") String mediaId)
获取永久素材
|
byte[] |
TempMaterialManager.downloadHDVoice(String mediaId)
下载高清语音素材
公众号可以使用本接口获取从 JSSDK 的uploadVoice接口上传的临时语音素材,
格式为speex,16K采样率。
|
byte[] |
TempMaterialManager.downloadMaterial(@NotBlank(message="\u7d20\u6750id\u4e0d\u80fd\u4e3a\u7a7a") String mediaId)
下载普通素材
|
MaterialCountResponse |
MaterialManager.materialCount()
统计素材使用情况
|
TempMaterialResponse |
TempMaterialManager.upload(@NotNull(message="\u6587\u4ef6\u7c7b\u578b\u4e0d\u80fd\u4e3a\u7a7a") MaterialEnum materialEnum,
@NotNull(message="\u6587\u4ef6\u6570\u636e\u4e0d\u80fd\u4e3a\u7a7a") byte[] fileData,
@NotBlank(message="\u6587\u4ef6\u540d\u79f0\u4e0d\u80fd\u4e3a\u7a7a") String fileName)
上传临时素材
|
PermanentMaterialResponse |
PermanentMaterialManager.upload(@NotNull(message="\u6587\u4ef6\u7c7b\u578b\u4e0d\u80fd\u4e3a\u7a7a") MaterialEnum materialEnum,
@NotNull(message="\u6587\u4ef6\u6570\u636e\u4e0d\u80fd\u4e3a\u7a7a") byte[] fileData,
@NotBlank(message="\u6587\u4ef6\u540d\u79f0\u4e0d\u80fd\u4e3a\u7a7a") String fileName,
String videoTitle,
String videoIntroduction)
上传永久素材
|
TempMaterialResponse |
TempMaterialManager.upload(@NotNull(message="\u6587\u4ef6\u7c7b\u578b\u4e0d\u80fd\u4e3a\u7a7a") MaterialEnum materialEnum,
@NotNull(message="\u6587\u4ef6\u4e0d\u80fd\u4e3a\u7a7a") File file)
上传临时素材
|
PermanentMaterialResponse |
PermanentMaterialManager.upload(@NotNull(message="\u6587\u4ef6\u7c7b\u578b\u4e0d\u80fd\u4e3a\u7a7a") MaterialEnum materialEnum,
@NotNull(message="\u6587\u4ef6\u4e0d\u80fd\u4e3a\u7a7a") File file,
String videoTitle,
String videoIntroduction)
上传永久素材
|
| 限定符和类型 | 方法和说明 |
|---|---|
WeChatResponse |
MenuManager.createMenu(@NotEmpty(message="\u521b\u5efa\u83dc\u5355\u8f93\u5165\u53c2\u6570\u4e0d\u80fd\u4e3a\u7a7a") List<MenuDTO> list)
创建菜单
|
PersonalizedMenuResponse |
PersonalizedMenuManager.createMenu(PersonalizedMenuDTO personalizedMenuDTO)
创建个性化菜单
|
WeChatResponse |
MenuManager.deleteMenu()
删除菜单
|
WeChatResponse |
PersonalizedMenuManager.deleteMenu(@NotBlank(message="\u83dc\u5355id\u4e0d\u80fd\u4e3a\u7a7a") String menuId)
删除菜单数据
|
MenuResponse |
MenuManager.getMenu()
获取全部菜单
|
MatchPersonalizedMenuResponse |
PersonalizedMenuManager.tryMatch(@NotBlank(message="uid\u4e0d\u80fd\u4e3a\u7a7a") String uid)
尝试匹配用户信息
|
| 限定符和类型 | 方法和说明 |
|---|---|
WeChatResponse |
SyncPushCustomer.pushCustomer(@NotNull(message="\u5f85\u5904\u7406\u7684\u4fe1\u606f\u4e0d\u80fd\u4e3a\u7a7a") CustomerMessageDTO messageDTO)
推送一个客服信息
|
WeChatResponse |
SyncPushTemplate.pushTemplate(WeChatTemplateDTO template)
推送一个模版信息
|
| 限定符和类型 | 方法和说明 |
|---|---|
QrCodeResponse |
QrcodeManager.createIdQrcode(@NotNull(message="\u4e8c\u7ef4\u7801id\u4e0d\u80fd\u4e3a\u7a7a") Long id)
创建一个永久二维码,参数为自定义id
|
QrCodeResponse |
QrcodeManager.createStringQrcode(@NotBlank(message="\u81ea\u5b9a\u4e49\u7684eventKey\uff0c\u4e0d\u5e94\u8be5\u4e3a\u7a7a") String eventKey)
创建一个永久二维码,参数为自定义字符串
|
TempQrCodeResponse |
QrcodeManager.createTempIdQrcode(@NotNull(message="\u81ea\u5b9a\u4e49\u7684id\u4e0d\u80fd\u4e3a\u7a7a") Long id,
@NotNull(message="\u81ea\u5b9a\u4e49\u7684\u8fc7\u671f\u65f6\u95f4\u4e0d\u80fd\u4e3a\u7a7a") @Max(value=2592000L,message="\u6700\u5927\u6709\u6548\u503c\u4e0d\u80fd\u8d85\u8fc72592000\u79d2(30\u5929)\uff0c\u8d85\u8fc7\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3a2592000") @Min(value=60L,message="\u6700\u5c0f\u6709\u6548\u503c\u4e3a60\uff0c\u5c0f\u4e8e60\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3a60") Long expireSecond)
创建一个临时二维码,参数为自定义id
|
TempQrCodeResponse |
QrcodeManager.createTempStringQrcode(@NotBlank(message="\u81ea\u5b9a\u4e49\u7684eventKey\u4e0d\u80fd\u4e3a\u7a7a") String eventKey,
@NotNull(message="\u81ea\u5b9a\u4e49\u7684\u8fc7\u671f\u65f6\u95f4\u4e0d\u80fd\u4e3a\u7a7a") @Max(value=2592000L,message="\u6700\u5927\u6709\u6548\u503c\u4e0d\u80fd\u8d85\u8fc72592000\u79d2(30\u5929)\uff0c\u8d85\u8fc7\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3a2592000") @Min(value=60L,message="\u6700\u5c0f\u6709\u6548\u503c\u4e3a60\uff0c\u5c0f\u4e8e60\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3a60") Long expireSecond)
创建一个临时二维码,参数为自定义的字符串
|
| 限定符和类型 | 方法和说明 |
|---|---|
WeChatResponse |
TagManager.batchTagging(@NotEmpty(message="\u7528\u6237id\u5217\u8868\u4e0d\u80fd\u4e3a\u7a7a") @Size(max=50,message="\u6bcf\u6b21\u4f20\u5165\u7684 openid \u5217\u8868\u4e2a\u6570\u4e0d\u80fd\u8d85\u8fc750\u4e2a") List<String> openIdList,
@NotNull(message="\u6807\u7b7eid\u4e0d\u80fd\u4e3a\u7a7a") Integer tagId)
用户批量打标签
标签功能目前支持公众号为用户打上最多20个标签。
|
WeChatResponse |
TagManager.batchUnTagging(@NotEmpty(message="\u7528\u6237id\u5217\u8868\u4e0d\u80fd\u4e3a\u7a7a") @Size(max=50,message="\u6bcf\u6b21\u4f20\u5165\u7684 openid \u5217\u8868\u4e2a\u6570\u4e0d\u80fd\u8d85\u8fc750\u4e2a") List<String> openIdList,
@NotNull(message="\u6807\u7b7eid\u4e0d\u80fd\u4e3a\u7a7a") Integer tagId)
批量取消用户标签
标签功能目前支持公众号为用户打上最多20个标签。
|
TagResponse |
TagManager.createTag(@NotBlank(message="\u6807\u7b7e\u540d\u5b57\u4e0d\u80fd\u4e3a\u7a7a") @Size(max=30,message="\u6700\u5927\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc730\u4e2a\u5b57\u7b26") String tagValue)
创建公众号标签
一个公众号,最多可以创建100个标签。
|
WeChatResponse |
TagManager.delete(@NotNull(message="\u6807\u7b7eid\u4e0d\u80fd\u4e3a\u7a7a") Integer id)
删除标签
|
List<Tag> |
TagManager.getTag()
获取公众号已创建的标签
|
TagUserResponse |
TagManager.getTagUser(@NotNull(message="\u6807\u7b7eid\u4e0d\u80fd\u4e3a\u7a7a") Integer tagId,
String nextOpenId)
获取标签下粉丝列表
|
List<Integer> |
TagManager.getUserTags(String openId)
获取用户身上的标签,最多标签数量 20
|
WeChatResponse |
TagManager.updateTag(@NotNull(message="\u6807\u7b7eid\u4e0d\u80fd\u4e3a\u7a7a") Integer id,
@NotBlank(message="\u6807\u7b7e\u540d\u5b57\u4e0d\u80fd\u4e3a\u7a7a") @Size(max=30,message="\u6700\u5927\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc730\u4e2a\u5b57\u7b26") String tagValue)
更新标签
|
| 限定符和类型 | 方法和说明 |
|---|---|
String |
DefaultWeChatTokenManagerImpl.getJsApiTicketFromWeiXin()
定时从微信获取JsApiTicket
|
String |
WeChatTokenManager.getJsApiTicketFromWeiXin()
定时从微信获取JsApiTicket
|
String |
DefaultWeChatTokenManagerImpl.getTokenFromWeiXin()
定时从微信获取token
|
String |
WeChatTokenManager.getTokenFromWeiXin()
定时从微信获取token
|
| 限定符和类型 | 方法和说明 |
|---|---|
Set<String> |
UserManager.findAll()
获取全部用户的openId
|
List<SubscriptionResponse> |
UserManager.findUserInfo(@NotEmpty(message="\u5f85\u67e5\u8be2\u5f85openId\u5217\u8868\u4e0d\u5e94\u4e3a\u7a7a") List<String> openIdList,
@NotNull(message="\u8bed\u8a00\u679a\u4e3e\u4e0d\u5e94\u4e3a\u7a7a") LanguageEnum languageEnum)
批量根据用户的openId获取用户的基本信息
|
SubscriptionResponse |
UserManager.getUserInfo(@NotBlank(message="\u5f85\u67e5\u8be2\u5f85openId\u4e0d\u5e94\u4e3a\u7a7a") String openId,
@NotNull(message="\u8bed\u8a00\u9009\u62e9\u4e0d\u5e94\u4e3a\u7a7a") LanguageEnum languageEnum)
获取一个用户的基本信息
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
ScheduledUpdateToken.updateToken()
每30分钟执行一次,更新数据库 token 和 jsapi ticket
|
Copyright © 2023. All rights reserved.