# DyOpenApiInJava **Repository Path**: codebug/dy-open-api-in-java ## Basic Information - **Project Name**: DyOpenApiInJava - **Description**: 抖音Open API Java实现 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-09-23 - **Last Updated**: 2023-07-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 抖音Open Api Java实现(不能使用,停止更新) ![license GPL3.0](https://img.shields.io/badge/license-GPL3.0-blue) ![author](https://img.shields.io/badge/author-mdmbct-red) ## 简介 [抖音Open API](https://open.douyin.com/platform/doc/6848798087398328323)的Java实现,支持账号授权、用户管理、视频管理、互动管理、搜索管理、数据开放服务、企业号开放能力、生活服务开放能力、工具能力。 可切换http请求实现方式,支持[ApacheHttp](http://httpd.apache.org/)与[OkHttp](https://square.github.io/okhttp/)(默认)。 支持对AccessToken、RefreshToken、ClientToken管理、自动获取与刷新。 可切换Token存储方式,支持存储在内存中(关闭应用自动保存至硬盘,启动时恢复)、使用RedisTemplate或Jedis存储在Redis中。 ## 架构 ![DouYinOpenAPi](assets/DouYinOpenAPi.png) ## 模块说明 dy-open-mapping-basis:基本Open API模块,提供用户管理、视频管理、互动管理、搜索管理、工具能力Open API实现; dy-open-mapping-data:数据开放服务Open API实现; dy-open-mapping-enterprise:企业号开放能力Open API实现; dy-open-mapping-life:生活服务开放能力Open API实现; dy-open-mapping-all:引入上述4个模块; dy-open-ap-common:公共模块,提供账号授权、Token管理、http实现等; dy-open-mapping-example:示例、测试模块,示例的Springboot项目,提供项目接口的使用; spring-boot-start-dy-open-mapping:各Open API实现模块的springboot start,提供快速自动配置 ## 使用 1、准备:clone代码至本地,maven编译、安装。 2、引入包含需要的Open API的模块对应的starter 3、自动配置 引入需要api模块对应的starter ​ 在yml配置文件中对Open API基本信息机存储进行配置,具体可配置项参考[这个](https://gitee.com/mdmbct/dy-open-mapping-in-java/blob/master/spring-boot-starter-dy-open-mapping/spring-boot-starter-dy-open-mapping-common/src/main/java/cn/mdmbct/spring/starter/douyin/common/properties/dy/DyOpenApiProperties.java)和[这个](https://gitee.com/mdmbct/dy-open-mapping-in-java/blob/develop/spring-boot-starter-dy-open-mapping/spring-boot-starter-dy-open-mapping-common/src/main/java/cn/mdmbct/spring/starter/douyin/common/properties/storage/StorageProperties.java); ​ 接着就可以使用Springboot的主动注入注解注入包含需要的API的Service。 (具体Service通过包含模块所有API的Service中的get方法获取,默认没有添加到IOC中) 比如: ```java @RestController @RequestMapping("/dy/user") @Api(tags = "抖音用户") public class DyUserController { @Resource private DyBasisService dyBasisService; @Resource private AuthService authService; @ApiOperation("获取AccessToken") @GetMapping("/access_token") public Result getAccessToken(String openId) { AccessTokenRes.AccessTokenResData accessTokenResData = authService.authRefreshToken(openId, AuthApiPlatform.DOU_YIN); return Result.success(accessTokenResData); } @ApiOperation("获取用户公开信息") @GetMapping("/open_info") public Result getUserOpenInfo(String openId) { GetUserOpenInfoRes.GetUserOpenInfoResData userOpenInfo = dyBasisService.getUserManagerService().getUserOpenInfo(openId, AuthApiPlatform.DOU_YIN); return Result.success(userOpenInfo); } @ApiOperation("获取用户粉丝列表") @GetMapping("/fans") public Result getFansList(String openId) { GetFansListRes.GetFansListResData fansList = dyBasisService.getUserManagerService().getFansList(openId, 0, 10); return Result.success(fansList); } @ApiOperation("获取用户粉丝计数") @GetMapping("/data/fans") public Result getUserFans(String openId) { DataUserFansRes.DataUserFansResData userFansCount = dyBasisService.getUserDataService().getUserFansCount(openId, UserDataCountApiDataType.THIRTY); return Result.success(userFansCount); } } ``` 4、手动配置 添加配置类 配置类参考如下 ```java 待补充 ``` **注意**: 1、cn.mdmbct.douyin.spring.example.controller.DyUserController#saveToken中的AccessToken已经过期了。请使用自己的未过期的AccessToken测试。 2、启动example项目不要忘记在配置文件中添加dy应用的key和secret. ## 进度 - [x] 账号授权 - [x] 用户管理 - [x] 视频管理 - [ ] 互动管理 - [x] 搜索管理 - [ ] 数据开放服务 - [ ] 企业号开放能力 - [ ] 生活号开放能力 - [ ] 工具能力 - [x] 单体应用配置、Token管理 - [ ] ApacheHttp实现