package com.dyj.web;
import com.dyj.common.client.BaseClient;
import com.dyj.common.config.AgentConfiguration;
import com.dyj.common.config.DyConfiguration;
import com.dyj.common.domain.DyResult;
import com.dyj.common.domain.DySimpleResult;
import com.dyj.common.domain.UserTokenInfo;
import com.dyj.common.domain.vo.*;
import com.dyj.web.domain.*;
import com.dyj.web.domain.query.*;
import com.dyj.web.domain.vo.*;
import com.dyj.web.handler.*;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.util.StreamUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.List;
/**
* @author danmo
* @date 2024-04-03 17:25
**/
public class DyWebClient extends BaseClient {
public DyWebClient() {
}
public static DyWebClient getInstance() {
return new DyWebClient();
}
public DyWebClient tenantId(Integer tenantId) {
super.tenantId = tenantId;
return this;
}
public DyWebClient clientKey(String clientKey) {
this.clientKey = clientKey;
return this;
}
/**
* 回调事件签名验证
*
* @param signature 签名
* @param wholeStr 消息体字符串
* @return 验证结果
*/
public Boolean checkSign(String signature, String wholeStr) {
AgentConfiguration agentConfiguration = configuration().getAgentConfigService().loadAgentByTenantId(tenantId, clientKey);
String data = agentConfiguration.getClientSecret() + wholeStr;
String sign = DigestUtils.sha1Hex(data);
if (!sign.equals(signature)) {
return false;
}
return true;
}
/**
* 通过代码获取访问令牌。
*
* @param code 用户授权后返回的授权码。
* @return 返回一个包含访问令牌信息的结果对象。
*/
public DyResult<AccessTokenVo> accessToken(String code) {
AgentConfiguration agentConfiguration = configuration().getAgentConfigService().loadAgentByTenantId(tenantId, clientKey);
// 使用配置信息和授权码获取访问令牌
return new AccessTokenHandler(agentConfiguration).getAccessToken(code);
}
/**
* 刷新访问令牌。
* 本方法用于根据租户ID和应用ID获取新的访问令牌。
*
* @return 返回一个包含刷新后的访问令牌信息的结果对象。
*/
public DyResult<RefreshTokenVo> refreshToken(String openId) {
DyConfiguration configuration = configuration();
AgentConfiguration agentConfiguration = configuration.getAgentConfigService().loadAgentByTenantId(tenantId, clientKey);
UserTokenInfo userTokenInfo = configuration.getAgentTokenService().getUserTokenInfo(agentConfiguration.getTenantId(), agentConfiguration.getClientKey(), openId);
// 利用配置信息和授权码获取新的访问令牌
return new AccessTokenHandler(agentConfiguration).refreshToken(userTokenInfo.getRefreshToken());
}
/**
* 根据指定的租户ID和客户端ID获取客户端令牌。
*
* @return 返回客户端令牌的结果,包含令牌信息或其他操作结果。
*/
public DyResult<ClientTokenVo> clientToken() {
AgentConfiguration agentConfiguration = configuration().getAgentConfigService().loadAgentByTenantId(tenantId, clientKey);
// 通过AccessTokenHandler处理逻辑,获取指定租户和客户端的令牌
return new AccessTokenHandler(agentConfiguration).getClientToken();
}
/**
* 带租户ID和客户端ID参数的刷新访问令牌方法。
* 使用提供的租户ID和客户端ID刷新访问令牌。
*
* @return DyResult<RefreshAccessTokenVo> 包含刷新后的访问令牌信息的结果对象。
*/
public DyResult<RefreshAccessTokenVo> refreshAccessToken(String openId) {
DyConfiguration configuration = configuration();
AgentConfiguration agentConfiguration = configuration.getAgentConfigService().loadAgentByTenantId(tenantId, clientKey);
UserTokenInfo userTokenInfo = configuration.getAgentTokenService().getUserTokenInfo(agentConfiguration.getTenantId(), agentConfiguration.getClientKey(), openId);
// 通过AccessTokenHandler处理逻辑,获取指定租户和客户端的刷新令牌
return new AccessTokenHandler(agentConfiguration).refreshAccessToken(userTokenInfo.getRefreshToken());
}
/**
* 获取用户信息的函数,支持指定租户ID和客户端ID。
*
* @param openId 用户的唯一标识。
* @return 返回一个包含用户信息的DyResult对象。
*/
public DyResult<UserInfoVo> getUserInfo(String openId) {
// 根据配置获取Agent配置
DyConfiguration configuration = configuration();
AgentConfiguration agentConfiguration = configuration.getAgentConfigService().loadAgentByTenantId(tenantId, clientKey);
// 使用Agent配置和用户ID获取用户信息
return new UserHandler(agentConfiguration).getUserInfo(openId);
}
/**
* 检查指定用户是否为另一用户的粉丝。
*
* @param openId 主体用户的OpenID,即被检查关注情况的用户ID。
* @param followerOpenId 粉丝用户的OpenID,即检查是否关注了主体用户的用户ID。
* @return 返回一个DyResult对象,包含检查结果的详细信息。其中,CheckFansVo对象封装了粉丝检查的结果数据。
*/
public DyResult<CheckFansVo> checkFans(String openId, String followerOpenId) {
AgentConfiguration agentConfiguration = configuration().getAgentConfigService().loadAgentByTenantId(tenantId, clientKey);
return new UserHandler(agentConfiguration).checkFans(openId, followerOpenId);
}
/**
* 用户经营身份管理。
*
* @param openId 用户的开放标识,用于识别用户。
* @param douyinShortId 抖音短ID,另一种用户标识方式。
* @param roleLabels 用户可能拥有的角色标签列表。
* @return DyResult<UserRoleCheckVo> 返回一个包含检查结果的响应对象,其中包含用户角色检查的详细信息。
*/
public DyResult<UserRoleCheckVo> userRoleCheck(String openId, String douyinShortId, List<String> roleLabels) {
AgentConfiguration agentConfiguration = configuration().getAgentConfigService().loadAgentByTenantId(tenantId, clientKey);
return new UserHandler(agentConfiguration).userRoleCheck(openId, douyinShortId, roleLabels);
}
/**
* 创建图文消息。
*
* @param query 创建图文消息的查询参数。
* @return DyResult<CreateImageTextVo> 返回一个包含创建图文消息结果的响应对象。
*/
public DyResult<CreateImageTextVo> createImageText(CreateImageTextQuery query) {
return new VideoHandler(configuration().getAgentConfigService().loadAgentByTenantId(tenantId, clientKey)).createImageText(query);
}
/**
* 上传图片。
*
* @param openId 用户的OpenID,用于标识上传者。
* @param file 要上传的图片文件。
* @return DyResult<UploadImageVo> 返回一个包含上传图片结果的响应对象。
* @throws FileNotFoundException 如果指定的文件不存在,则抛出此异常。
*/
public DyResult<UploadImageVo> uploadImage(String openId, File file) throws IOException {
return new VideoHandler(configuration().getAgentConfigService().loadAgentByTenantId(tenantId, clientKey)).uploadImage(openId, file);
}
/**
* 上传视频。
*
* @param openId 用户的OpenID,用于标识上传者。
* @param file 要上传的视频文件。
* @return DyResult<UploadVideoVo> 返回一个包含上传视频结果的响应对象。
* @throws FileNotFoundException 如果指定的文件不存在,�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
DyJava是一款功能强大的抖音Java开发工具包(SDK),支持抖音各个应用OpenAPI快速调用,包括但不限于移动/网站应用、抖音开放平台、抖店、TikTok和抖音小程序等。DyJava致力于简化开发流程,提高开发效率,让开发者能够更专注于创新和业务逻辑的实现。
资源推荐
资源详情
资源评论
收起资源包目录
DyJava是一款功能强大的抖音Java开发工具包(SDK),支持抖音各个应用OpenAPI快速调用,包括但不限于移动/网站应用 (540个子文件)
spring.factories 157B
.gitignore 402B
org.springframework.boot.autoconfigure.AutoConfiguration.imports 86B
DyWebClient.java 59KB
DyAppletClient.java 56KB
LifeServicesClient.java 23KB
LifeServiceHandler.java 21KB
DataExternalHandler.java 19KB
DataExternalClient.java 19KB
DyWebUrlPathEnum.java 17KB
DataExternalTest.java 17KB
DyAppletUrlPathEnum.java 16KB
CreateCouponMeta.java 15KB
SupplierSyncQuery.java 14KB
DyForestConfigurationProperties.java 11KB
AptVideoHandler.java 11KB
ModifyCouponMeta.java 10KB
SpuSyncQuery.java 10KB
PromotionCouponTest.java 10KB
AptVideoClient.java 9KB
PromotionCouponHandler.java 8KB
PromotionCouponClient.java 8KB
ModifyPromotionActivitySidebarActivity.java 8KB
DyConfigurationRegister.java 8KB
CreateFansGroupQuery.java 8KB
ProductStruct.java 8KB
PromotionActivitySidebarActivity.java 7KB
CreateVideoQuery.java 7KB
QueryCouponMeta.java 7KB
UpdateTalentCouponStockQuery.java 6KB
QueryActivityMetaDetail.java 6KB
CreatePromotionActivityV2.java 6KB
SupplierSubmitTaskData.java 6KB
GetH5ShareQuery.java 6KB
QueryActivityMetaDetailListQuery.java 6KB
SupplierScenicNotice.java 5KB
SetTalentCouponApiQuery.java 5KB
BatchRollbackConsumeCouponQuery.java 5KB
SendMsgQuery.java 5KB
SendMsgQuery.java 5KB
SpuDetail.java 5KB
SyncV2CouponQuery.java 5KB
VideoHandler.java 5KB
CreateImageTextQuery.java 5KB
VideoTest.java 5KB
SendCouponToDesignatedUserCouponInfo.java 5KB
PromotionActivityImActivity.java 5KB
AuthPrivateMessageCardMsg.java 5KB
UpdateTalentCouponStatusQuery.java 4KB
ModifyPromotionActivity.java 4KB
DiscoveryEntRankItemHotSpot.java 4KB
CouponReceiveInfo.java 4KB
RedisAgentTokenService.java 4KB
CreateAppletTemplateQuery.java 4KB
CreateVideoTaskQuery.java 4KB
CreateLiveTaskQuery.java 4KB
QueryCouponMetaStatisticsQuery.java 4KB
CreateQrCodeQuery.java 4KB
SkuStruct.java 4KB
CreateDeveloperActivityQuery.java 4KB
BatchConsumeCouponQuery.java 4KB
LimitOpPointQuery.java 4KB
SupplierDataDetail.java 4KB
VideoSearchResult.java 4KB
GroupTest.java 4KB
UpdateCouponMetaStockQuery.java 4KB
AppletTokenHandler.java 4KB
ClueHandler.java 4KB
UpdateClueComponentQuery.java 4KB
VideoClient.java 4KB
QueryTalentCouponLimitQuery.java 4KB
OrientedPlanTalent.java 4KB
SaveShortVideoPlanQuery.java 4KB
ModifyPromotionActivityImActivity.java 4KB
SpringUtils.java 4KB
ClientTokenInterceptor.java 4KB
FreeAuditGoodsProductQuery.java 4KB
QueryPromotionActivityV2.java 4KB
ChatMsgHandler.java 4KB
GenerateSchemaQuery.java 4KB
GenerateUrlLinkQuery.java 4KB
PromotionActivityLiveActivity.java 4KB
IntentionLogQuery.java 4KB
ApiFansDataBindFansData.java 3KB
ModifyPromotionActivityLiveActivity.java 3KB
QueryPromotionActivityImActivityShareFissionConfig.java 3KB
CreateSearchSubQuery.java 3KB
CreateClueComponentQuery.java 3KB
BusinessTest.java 3KB
SaveLivePlanQuery.java 3KB
RegisterMaAppQuery.java 3KB
SaveRetainConsultCardQuery.java 3KB
TalentCouponLimit.java 3KB
DyConfiguration.java 3KB
VideoSearchCommentReplyV2Query.java 3KB
SearchTest.java 3KB
BusinessHandler.java 3KB
ItemCommentReplyEvent.java 3KB
QueryCouponReceiveInfoQuery.java 3KB
SendCouponToDesignatedUserQuery.java 3KB
共 540 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6835
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- matlab画图教程.docx
- 基于MNIST数据集卷积神经网络实现手写数字识别(GUI).zip
- 一个MATLAB仿真设计的例子,演示如何对一个模拟信号进行傅里叶变换:
- 10-Hadoop(HA)V4.0.docx
- 基于MNIST数据集卷积神经网络实现手写数字识别(GUI)源码+文档说明
- 自定义函数在后缀表达式中的应用与实现
- 使用python爬取天气信息(包括历史天气数据)_python爬取天气数据-CSDN博客.html
- 毕设项目:高校学生宿舍管理系统的设计与实现(ASP.NET+源代码+论文)
- Navicat入门教程.docx
- os.path.join(root, 'test-average-edge-map'
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功