抖音sdk,抖音api接口java调用源代码

抖音sdk,抖音api接口

1、抖音上线下线

/** 
 * 抖音上线通知 
 * @author wechat:happybabby110
 * @blog http://www.wlkankan.cn
 */
public  void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {
    try {
        ImOnlineNoticeMessage req = vo.getContent().unpack(ImOnlineNoticeMessage.class);
        log.debug(JsonFormat.printer().print(req));
        //1、校验用户信息
        if(null != req){
            //2、存储全局id 与通道
            NettyConnectionUtil.registerUserid(req.getImUid(),ctx);
               
            DeviceInfo  device = deviceService.getByDeviceid(req.getImei());
            if(null != device){
                //做个保护,如果当前微信号在其他设备上登陆过,就把之前那条记录删除
                if(!StringUtils.isBlank(req.getImUid()) && !StringUtils.isBlank(req.getImei())){
                     if(!StringUtils.isEmpty(device.getImuid()) && !req.getImUid().equals(device.getImuid())){
                         device.setAvatar("");
                         device.setImuid("");
                         device.setNickname("");
                         device.setIsonline(1);
                         deviceService.update(device);
                     }
                }
                //设置新的参数
                device.setImuid(req.getImUid());
                device.setNickname(req.getNickName());
                device.setAvatar(req.getAvatar());
                device.setGender(req.getGenderValue());
                device.setPhone(req.getPhone());
                device.setUniqueid(req.getUniqueId());
                device.setProvince(req.getProvince());
                device.setCity(req.getCity());
                device.setDistrict(req.getDistrict());
                device.setSignature(req.getSignature());
                device.setAwemecount(req.getAwemeCount());
                device.setFollowingcount(req.getFollowingCount());
                device.setFollowercount(req.getFollowerCount());
                device.setFriendcount(req.getFriendCount());
                     
                //改为上线状态
                device.setIsonline(0);//上线
                deviceService.update(device);
                //3、告诉客户端消息已收到
                MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
                
                asyncTaskService.msgSend2pc(req.getImUid(), EnumMsgType.ImOnlineNotice, req);
            }
             
        } 
     
    } catch (Exception e) {
        e.printStackTrace();
        MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), e.getMessage());
    }
}

/**
* 抖音下线通知
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {
try {
ImOfflineNoticeMessage req = vo.getContent().unpack(ImOfflineNoticeMessage.class);
log.debug(JsonFormat.printer().print(req));
if (null != req) {
// 把消息转发给pc端
DeviceInfo account = deviceService.getByImUid(req.getImUid());
if (null != account) {
account.setIsonline(1);// 下线
deviceService.update(account);

                asyncTaskService.msgSend2pc(req.getImUid(), EnumMsgType.ImOfflineNotice, req);
            }
            // 3、告诉客户端消息已收到
            MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
        } else {
            MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam, vo.getId(), Constant.ERROR_MSG_ILLEGALDEVICE);
        }

    } catch (Exception e) {
        e.printStackTrace();
        MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam, vo.getId(), Constant.ERROR_MSG_DECODFAIL);
    }
}

2、抖音粉丝或好友收发消息

/**
* 给抖音粉丝或好友发消息
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx,TransportMessage vo, String contentJsonStr) {
try {
log.debug(contentJsonStr);
TalkToFriendTaskMessage.Builder bd = TalkToFriendTaskMessage.newBuilder();
JsonFormat.parser().merge(contentJsonStr, bd);
TalkToFriendTaskMessage req = bd.build();
//将消息转发送给手机客户端
asyncTaskService.msgSend2Phone(ctx, req.getImUid(), EnumMsgType.TalkToFriendTask, vo, req);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
}
}

/**
* 抖音聊天消息实时推送
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {
try {
ChatMsgNoticeMessage req = vo.getContent().unpack(ChatMsgNoticeMessage.class);
log.debug(JsonFormat.printer().print(req));

        log.debug(LocalDateTime.now()+" ChatMsgNoticeMessage  对应的线程名: "+Thread.currentThread().getName());
           
        //消息转发到pc端
        asyncTaskService.msgSend2pc(req.getImUid(), EnumMsgType.ChatMsgNotice, req);
         
        // 告诉客户端消息已收到
        MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
          
    } catch (Exception e) {
        e.printStackTrace();
        MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), e.getMessage());
    }
}

3、关注与取消关注抖音号

/**
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
* 关注抖音号
*/
@Async
public void handleMsg(ChannelHandlerContext ctx,TransportMessage vo, String contentJsonStr) {
try {
log.debug(contentJsonStr);
FollowTaskMessage.Builder bd = FollowTaskMessage.newBuilder();
JsonFormat.parser().merge(contentJsonStr, bd);
FollowTaskMessage req = bd.build();
//将消息转发送给手机客户端
asyncTaskService.msgSend2Phone(ctx, req.getImUid(), EnumMsgType.FollowTask, vo, req);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
}
}

/**
* 取消关注抖音号
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx,TransportMessage vo, String contentJsonStr) {
try {
log.debug(contentJsonStr);
UnFollowTaskMessage.Builder bd = UnFollowTaskMessage.newBuilder();
JsonFormat.parser().merge(contentJsonStr, bd);
UnFollowTaskMessage req = bd.build();
//将消息转发送给手机客户端
asyncTaskService.msgSend2Phone(ctx, req.getImUid(), EnumMsgType.UnFollowTask, vo, req);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
}
}

4、同步抖音推荐的好友

/**
* 同步抖音推荐的好友
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx,TransportMessage vo, String contentJsonStr) {
try {
log.debug(contentJsonStr);
SyncRecFriendsTaskMessage.Builder bd = SyncRecFriendsTaskMessage.newBuilder();
JsonFormat.parser().merge(contentJsonStr, bd);
SyncRecFriendsTaskMessage req = bd.build();
//将消息转发送给手机客户端
asyncTaskService.msgSend2Phone(ctx, req.getImUid(), EnumMsgType.SyncRecFriendsTask, vo, req);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
}
}

/**
* 推送抖音推荐的好友
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {
try {
RecFriendsPushNoticeMessage req = vo.getContent().unpack(RecFriendsPushNoticeMessage.class);
log.debug(JsonFormat.printer().print(req));

        log.debug(LocalDateTime.now()+" RecFriendsPushNoticeMessage  对应的线程名: "+Thread.currentThread().getName());
           
        //消息转发到pc端
        asyncTaskService.msgSend2pc(req.getImUid(), EnumMsgType.RecFriendsPushNotice, req);
         
        // 告诉客户端消息已收到
        MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
         
         
    } catch (Exception e) {
        e.printStackTrace();
        MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), e.getMessage());
    }
}

5、同步抖音聊天会话列表

/**
* 同步抖音会话列表
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx,TransportMessage vo, String contentJsonStr) {
try {
log.debug(contentJsonStr);
SyncConversationTaskMessage.Builder bd = SyncConversationTaskMessage.newBuilder();
JsonFormat.parser().merge(contentJsonStr, bd);
SyncConversationTaskMessage req = bd.build();
//将消息转发送给手机客户端
asyncTaskService.msgSend2Phone(ctx, req.getImUid(), EnumMsgType.SyncConversationTask, vo, req);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
}
}

/**
* 推送抖音会话列表
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {
try {
ConversationPushNoticeMessage req = vo.getContent().unpack(ConversationPushNoticeMessage.class);
log.debug(JsonFormat.printer().print(req));

        log.debug(LocalDateTime.now()+" ConversationPushNoticeMessage  对应的线程名: "+Thread.currentThread().getName());
           
        //消息转发到pc端
        asyncTaskService.msgSend2pc(req.getImUid(), EnumMsgType.ConversationPushNotice, req);
         
        // 告诉客户端消息已收到
        MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
         
         
    } catch (Exception e) {
        e.printStackTrace();
        MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), e.getMessage());
    }
}

6、同步抖音粉丝列表

/**
* 同步抖音粉丝
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx,TransportMessage vo, String contentJsonStr) {
try {
log.debug(contentJsonStr);
SyncFollowersTaskMessage.Builder bd = SyncFollowersTaskMessage.newBuilder();
JsonFormat.parser().merge(contentJsonStr, bd);
SyncFollowersTaskMessage req = bd.build();
//将消息转发送给手机客户端
asyncTaskService.msgSend2Phone(ctx, req.getImUid(), EnumMsgType.SyncFollowersTask, vo, req);
} catch (Exception e) {
e.printStackTrace();
MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
}
}

/**
* 推送抖音粉丝
* @author wechat:happybabby110
* @blog http://www.wlkankan.cn
*/
@Async
public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {
try {
FollowersPushNoticeMessage req = vo.getContent().unpack(FollowersPushNoticeMessage.class);
log.debug(JsonFormat.printer().print(req));

        log.debug(LocalDateTime.now()+this.getClass().getName()+"对应的线程名: "+Thread.currentThread().getName());
           
        //消息转发到pc端
        asyncTaskService.msgSend2pc(req.getImUid(), EnumMsgType.FollowersPushNotice, req);
         
        // 告诉客户端消息已收到
        MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
         
    } catch (Exception e) {
        e.printStackTrace();
        MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), e.getMessage());
    }
}
原文地址:https://www.cnblogs.com/wuliaokankan/p/14137119.html