云控微信开发SDK使用教程--手机微信朋友圈图片上传服务端

简介: 云控微信开发SDK使用教程--手机微信朋友圈图片上传服务端

云控微信开发SDK使用教程--手机微信朋友圈图片上传服务端

case CircleDetailNotice : {//朋友圈图片上传
log.debug("socket:msgtype=CircleDetailNotice");
circleDetailNoticeHandler.handleMsg(ctx, msgVo);
break;
}
package com.jubotech.framework.netty.handler.socket;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.google.protobuf.util.JsonFormat;
import com.jubotech.business.web.domain.AccountInfo;
import com.jubotech.business.web.domain.BusinessWechatFriends;
import com.jubotech.business.web.domain.WeChatAccountInfo;
import com.jubotech.business.web.service.AccountService;
import com.jubotech.business.web.service.BusinessWechatFriendsService;
import com.jubotech.business.web.service.WeChatAccountService;
import com.jubotech.framework.netty.common.Constant;
import com.jubotech.framework.netty.utils.MessageUtil;
import com.jubotech.framework.netty.utils.NettyConnectionUtil;
import Jubo.JuLiao.IM.Wx.Proto.CircleDetailNotice.CircleDetailNoticeMessage;
import Jubo.JuLiao.IM.Wx.Proto.TransportMessageOuterClass.EnumErrorCode;
import Jubo.JuLiao.IM.Wx.Proto.TransportMessageOuterClass.EnumMsgType;
import Jubo.JuLiao.IM.Wx.Proto.TransportMessageOuterClass.TransportMessage;
import io.netty.channel.ChannelHandlerContext;
@Service
public class CircleDetailNoticeHandler{
private final Logger log = LoggerFactory.getLogger(getClass());
@Autowired
private WeChatAccountService weChatAccountService;
@Autowired
private AccountService accountService;
@Autowired
private BusinessWechatFriendsService businessWechatFriendsService;
/**
 * 朋友圈图片上传
 * @author wechatno:tangjinjinwx
 * @param ctx
 * @param vo
 */
public  void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {
    try {
        CircleDetailNoticeMessage req = vo.getContent().unpack(CircleDetailNoticeMessage.class);
        log.info(JsonFormat.printer().print(req));
        // 把消息转发给pc端
        // a、根据wechatId找到accountid
        // b、通过accountid找到account
        // c、通过account账号找到通道
        WeChatAccountInfo account = weChatAccountService.findWeChatAccountInfoByWeChatId(req.getWeChatId());
        if (null != account && null != account.getAccountid() && 1 != account.getIslogined()) {
            AccountInfo accInfo = accountService.findAccountInfoByid(account.getAccountid());
            if (null != accInfo) {
                // 转发给pc端
                ChannelHandlerContext chx = NettyConnectionUtil.getClientChannelHandlerContextByUserId(accInfo.getAccount());
                if (null != chx) {
                    MessageUtil.sendJsonMsg(chx, EnumMsgType.CircleDetailNotice, NettyConnectionUtil.getNettyId(chx),null, req);
                }
            }
        }
        
        //转发给商务app端
        BusinessWechatFriends  buiness = businessWechatFriendsService.getBusinessWechatFriendsByFriendWechatid(req.getWeChatId());
        if(null != buiness){
            String nettyName = buiness.getCid()+"_"+buiness.getB_number();
            ChannelHandlerContext cx_netty = NettyConnectionUtil.getClientChannelHandlerContextByUserId(nettyName);
            if(null != cx_netty){
                MessageUtil.sendJsonMsg(cx_netty, EnumMsgType.CircleDetailNotice, NettyConnectionUtil.getNettyId(ctx), null, req);
            }
        }
        
        // 告诉客户端消息已收到
        MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);
        
         
    } catch (Exception e) {
        e.printStackTrace();
        MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);
    }
}
}



相关文章
|
1月前
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
61 4
|
1月前
|
API
查询城市手机号段免费API接口教程
此API用于查询指定城市的手机号段、服务商、区号、邮编等信息。支持POST或GET请求,需提供用户ID、KEY及城市名称等参数。返回数据包括状态码、信息提示、查询数量、最大页码、当前页码、省份、城市、区号、邮编、区划代码及数据集等。示例中提供的ID和KEY为公共测试用,建议使用个人ID和KEY以获得更高的调用频率。
|
1月前
|
API
手机号段查询城市免费API接口教程
此接口用于根据手机号段查询相关信息,包括城市、运营商、区号等。支持POST和GET请求,需提供用户ID、KEY及手机号段前7位作为参数。返回数据包含状态码、信息提示及详细归属信息。示例请求地址:https://cn.apihz.cn/api/ip/haoduan.php?id=88888888&key=88888888&numbers=1321993。接口免费,建议使用个人ID与KEY以独享调用频次。
|
1月前
|
API
查手机号归属地免费API接口教程
此API用于查询指定手机号码的归属地信息,包括号段、省份、城市、运营商等。支持POST和GET请求方式,需提供用户ID、KEY及手机号作为参数。返回结果包含状态码、信息提示及详细归属地信息。示例请求地址:https://cn.apihz.cn/api/ip/shouji.php?id=88888888&key=88888888&phone=13219931963。
|
1月前
|
安全 API 开发者
微信开发者工具里面没有企业微信模式
企业微信与普通微信在应用场景和开发体系上存在本质区别,主要体现在身份认证、功能丰富性和开放能力等方面。企业微信开发需使用特定的API和工具,本文介绍了企业微信开发的基本步骤、特点及开发进度安排,帮助开发者更好地理解和应用企业微信的开发环境。
|
2月前
|
存储 Android开发 网络架构
点心云-N1盒子、机顶盒、手机等设备-小白保姆式刷机教程
本文介绍了N1盒子的刷机教程,包括未刷机和已刷其他系统的N1。教程详细列出了所需工具和具体步骤,如下载工具包、制作安装盘、打开ADB模式、降级、刷入新系统等,确保用户能够顺利完成刷机操作。对于已刷第三方系统的N1,还提供了解决USB线不被识别、驱动问题及供电不足等常见问题的方法。
229 1
点心云-N1盒子、机顶盒、手机等设备-小白保姆式刷机教程
|
2月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
965 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
3月前
|
vr&ar 图形学 UED
电子沙盘VR模型大屏平板手机微信使用方案
数字孪生电子沙盘和VR模型被广泛应用在房地产等行业,为不同设备定制不同版本的模型是常见做法。然而,通过实时云渲染技术,可以将PC端的VR模型转化为网页版,使用户能够在平板或手机上流畅浏览详细信息,无需开发多个版本。这不仅提升了用户体验,还简化了模型提供商的工作流程,降低了成本。尤其在新楼盘发布时,可通过公众号或广告链接快速吸引潜在客户。成本主要取决于并发用户数及显卡性能要求,但该技术显著提高了跨设备访问的便利性。
56 1
|
4月前
|
小程序 开发者
第一个微信小程序的初始化过程、小程序微信开发平台的下载、如何注册一个微信小程序的账号
这篇文章介绍了微信小程序的初始化过程,包括如何注册微信小程序账号、下载微信小程序开发者平台,并指导了新建小程序的详细步骤。
第一个微信小程序的初始化过程、小程序微信开发平台的下载、如何注册一个微信小程序的账号
|
4月前
|
存储 监控 开发工具
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
78 0