这个项目分享的如何基于抖音平台,开发的java源码:API覆盖率超过95%, 只需要简单的修改一下配置文件, 就能轻松调用api.自动集成官方SDK, 切换使用原生一样方便! 多种选择, 轻松适配!根据视频大小, 自动切换视频分片上传, 轻松避免异常, 保证接口安全.接口分类清晰, 操作简单明了
[订阅获取教程全部和source code]
用户授权后可获取用户相关信息返回的结果是:
相关的文档:
Scope: user_info 需要用户授权 该接口获取用户的抖音公开信息,包含昵称、头像、性别和地区;适用于抖音。
注意:
抖音的OAuth API以https://open.douyin.com/开头。
头条的OAuth API以https://open.snssdk.com/开头。
目前只支持返回用户头像、昵称及open_id。
西瓜的OAuth API以https://open-api.ixigua.com/开头。
目前只支持返回用户头像、昵称及open_id。
获取用户手机号:
需要用户授权mobile_alert 权限
用户授权后该接口会返回encrypt_mobile
解密手机号,使用Aes算法解密,秘钥是clientSecret, 向量lv 是clientSecret前16字节
实现相关源码:
package com.jason.open.api.user;
import cn.hutool.core.util.StrUtil;
import com.douyin.open.api.FansListApi;
import com.douyin.open.api.FollowingListApi;
import com.douyin.open.api.UserInfoApi;
import com.douyin.open.models.UserFansFansInlineResponse200;
import com.douyin.open.models.UserFollowingFollowingInlineResponse200;
import com.douyin.open.models.UserUserInfoUserInfoInlineResponse200;
import com.jason.open.api.utils.exception.UserException;
import org.springframework.web.client.RestClientException;
public class UserManager {
private UserInfoApi userInfoApi;
private FansListApi fansListApi;
private FollowingListApi followingListApi;
/**
* 初始构造
*/
public UserManager() {
if (userInfoApi == null) {
userInfoApi = new UserInfoApi();
}
if (fansListApi == null) {
fansListApi = new FansListApi();
}
if (followingListApi == null) {
followingListApi = new FollowingListApi();
}
}
/**
* 获取用户公开信息 Scope: `user_info`需要用户授权
*/
public UserUserInfoUserInfoInlineResponse200 getUserInfo(String openId, String accessToken) {
if (StrUtil.isBlank(openId)||StrUtil.isBlank(accessToken)) {
throw new UserException("openId 或者 accessToken 不能为空!!");
}
UserUserInfoUserInfoInlineResponse200 result = null;
try {
result = userInfoApi.oauthUserinfoGet(openId, accessToken);
} catch (RestClientException e) {
e.printStackTrace();
}
return result;
}
/**
* 获取粉丝列表 Scope: `fans.list`需要用户授权
* @param openId 用户唯一标志
* @param accessToken accessToken
* @param pageNum 当前页
* @param pageSize 每页总记录数
*/
public UserFansFansInlineResponse200 getFansList(String openId, String accessToken,Integer pageNum,Integer pageSize) {
if (StrUtil.isBlank(openId)||StrUtil.isBlank(accessToken)) {
throw new UserException("openId 或者 accessToken 不能为空!!");
}
long pageRow = 0;
if (pageNum!=null&&pageNum>0) {
pageRow = (long)(pageNum*pageSize - pageSize);
}
UserFansFansInlineResponse200 result = null;
try {
result = fansListApi.fansListGet(openId,accessToken,pageSize,pageRow);
} catch (RestClientException e) {
e.printStackTrace();
}
return result;
}
/**
* 获取关注列表 Scope: `following.list`需要用户授权
* @param openId 用户唯一标志
* @param accessToken accessToken
* @param pageNum 当前页
* @param pageSize 每页总记录数
*/
public UserFollowingFollowingInlineResponse200 getUserFollow(String openId, String accessToken,Integer pageNum,Integer pageSize) {
if (StrUtil.isBlank(openId)||StrUtil.isBlank(accessToken)) {
throw new UserException("openId 或者 accessToken 不能为空!!");
}
long pageRow = 0;
if (pageNum!=null&&pageNum>0) {
pageRow = (long)(pageNum*pageSize - pageSize);
}
UserFollowingFollowingInlineResponse200 result = null;
try {
result = followingListApi.followingListGet(openId,accessToken,pageSize,pageRow);
} catch (RestClientException e) {
e.printStackTrace();
}
return result;
}
}
项目源码地址:
https://github.com/LovebuildJ/douyin-open-api-sdk