当前位置: 首页 > news >正文

js网站一键变灰如何做网站同步

js网站一键变灰,如何做网站同步,汕头网站建设优化,西安外贸网站开发说明 企业微信官方提供的均为API接口#xff0c;没有提供集成SDK。因此无需引入Maven依赖#xff0c;直接以Https方式请求即可。 有些第三方提供了集成的Java SDK#xff0c;可根据需求自行选用。 本文采用直接调用官方API的方式。 基础配置 企业微信注册后#xff0c;可…说明 企业微信官方提供的均为API接口没有提供集成SDK。因此无需引入Maven依赖直接以Https方式请求即可。 有些第三方提供了集成的Java SDK可根据需求自行选用。 本文采用直接调用官方API的方式。 基础配置 企业微信注册后可得到corpId、agentId、corpSecret的信息。 而企业微信的所有接口均以https://qyapi.weixin.qq.com/cgi-bin开头。 综上在yml中定义配置 qywx:endpoint: https://qyapi.weixin.qq.com/cgi-bincorpId: wx00000000000000baagentId: 1000000corpSecret: V0000000000_00000000000000000000000000000wc然后定义一个配置类 import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component;Component Configuration ConfigurationProperties(prefix QywxConfig.prefix) Data public class QywxConfig {public final static String prefix qywx;/*** 企业微信请求地址*/private String endpoint;/*** 企业id*/private String corpId;private String agentId;private String corpSecret; }这样即可在容器类中引用配置。 发送请求 服务端需要向企业微信发送请求。这里使用Forest来进行请求。 首先引入依赖 !-- forest -- dependencygroupIdcom.dtflys.forest/groupIdartifactIdforest-spring-boot-starter/artifactIdversion1.5.32/version /dependency考虑到所有的请求都需拼接共同的企业微信请求地址因此为Forest添加拦截器来统一处理 import com.dtflys.forest.http.ForestRequest; import com.dtflys.forest.interceptor.Interceptor; import com.dtflys.forest.reflection.ForestMethod; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;Component public class QywxForestInterceptor implements InterceptorString {Autowiredprivate QywxConfig qywxConfig;Overridepublic void onInvokeMethod(ForestRequest req, ForestMethod method, Object[] args) {req.setBasePath(qywxConfig.getEndpoint());} }然后定义请求的接口类 import com.cosmoplat.hyida.core.result.Result; import com.cosmoplat.qingyin.safety.qywx.controller.model.dto.MessageTextDto; import com.cosmoplat.qingyin.safety.qywx.controller.model.dto.QyWxUserDetailDto; import com.cosmoplat.qingyin.safety.qywx.inteceptor.SafetyForestInterceptor; import com.dtflys.forest.annotation.*;import java.util.Map;BaseRequest(interceptor QywxForestInterceptor.class, headers {Accept: */*, Content-Type: application/json}) public interface QywxForestClient {/*** 获取access_token* param corpId* param corpSecret* return*/Get(url /gettoken?corpid{corpId}corpsecret{corpSecret})MapString,Object getToken(Var(corpId) String corpId, Var(corpSecret) String corpSecret);}当调用时引入QywxConfig和QywxForestClient Resource private QywxConfig qywxConfig;Resource private QywxForestClient qywxForestClient;private String getAccessToken() {// 根据corpId和corpSecret获取 access_tokenString corpId qywxConfig.getCorpId();String corpSecret qywxConfig.getCorpSecret();MapString, Object tokenResult qywxForestClient.getToken(corpId, corpSecret);if (!result.get(errcode).equals(0) || StringUtils.isEmpty(result.get(access_token))) {System.out.println(获取企业微信access_token失败! result.get(errmsg)); }return String.valueOf(result.get(access_token)); }关于access_token access_token的官方文档地址 https://developer.work.weixin.qq.com/document/path/91039 里面明确提到了3个注意事项 为了安全考虑开发者 请勿 将 access_token 返回给前端需要开发者保存在后台所有访问企业微信api的请求由后台发起。开发者需要缓存access_token用于后续接口的调用注意不能频繁调用gettoken接口否则会受到频率拦截。当access_token失效或过期时需要重新获取。access_token的有效期通过返回的expires_in来传达正常情况下为7200秒2小时有效期内重复获取返回相同结果过期后获取会返回新的access_token。 因此最佳实践应使用Redis缓存access_token。当获取access_token时先从Redis中取。若取不到则向企业微信发起请求获取并写入到Redis中。 携带参数 以发送应用消息为例现在要发送一个文本消息。 参考官方文档 请求方式POSTHTTPS 请求地址 https://qyapi.weixin.qq.com/cgi-bin/message/send?access_tokenACCESS_TOKEN 参数示例为 {touser : UserID1|UserID2|UserID3,toparty : PartyID1|PartyID2,totag : TagID1 | TagID2,msgtype : text,agentid : 1,text : {content : 你的快递已到请携带工卡前往邮件中心领取。\n出发前可查看a href\http://work.weixin.qq.com\邮件中心视频实况/a聪明避开排队。},safe:0,enable_id_trans: 0,enable_duplicate_check: 0,duplicate_check_interval: 1800 }返回示例为 {errcode : 0,errmsg : ok,invaliduser : userid1|userid2,invalidparty : partyid1|partyid2,invalidtag: tagid1|tagid2,unlicenseduser : userid3|userid4,msgid: xxxx,response_code: xyzxyz }现在根据文档的信息来添加接口。 首先定义一个MessageTextDto对象来承载发送时的参数。其中text属性又是一个对象。 import io.swagger.annotations.ApiModel; import lombok.Data;Data public class MessageTextDto {/*** 指定接收消息的成员成员ID列表多个接收者用‘|’分隔最多支持1000个。* 特殊情况指定为all则向该企业应用的全部成员发送*/private String touser;/*** 指定接收消息的部门部门ID列表多个接收者用‘|’分隔最多支持100个。* 当touser为all时忽略本参数*/private String toparty;/*** 指定接收消息的标签标签ID列表多个接收者用‘|’分隔最多支持100个。* 当touser为all时忽略本参数*/private String totag;/*** 消息类型此时固定为text* 必填*/private String msgtype text;/*** 企业应用的id整型。企业内部开发可在应用的设置页面查看第三方服务商可通过接口 获取企业授权信息 获取该参数值* 必填*/private String agentid;/*** 消息内容最长不超过2048个字节超过将截断支持id转译* 必填*/private MessageText text new MessageText();/*** 表示是否是保密消息0表示可对外分享1表示不能分享且内容显示水印默认为0*/private String safe;/*** 表示是否开启id转译0表示否1表示是默认0。仅第三方应用需要用到企业自建应用可以忽略。*/private String enable_id_trans;/*** 表示是否开启重复消息检查0表示否1表示是默认0*/private String enable_duplicate_check;/*** 表示是否重复消息检查的时间间隔默认1800s最大不超过4小时*/private String duplicate_check_interval; }MessageText对象 import lombok.Data;Data public class MessageText {/*** 消息内容最长不超过2048个字节超过将截断支持id转译* 必填*/private String content; }然后在QywxForestClient中添加接口 BaseRequest(interceptor QywxForestInterceptor.class, headers {Accept: */*, Content-Type: application/json}) public interface QywxForestClient {/*** 获取访问用户敏感信息* param messageTextDto* param accessToken* return*/Post(url /message/send?access_token{accessToken})MapString, Object messageSend(Body MessageTextDto messageTextDto, Var(accessToken) String accessToken); }这样即可进行调用 private MapString, Object sendMessage(String touser, String content) {if (StrUtil.isEmpty(touser)) {// 消息接收者为空return Maps.newHashMap();}MessageTextDto messageTextDto new MessageTextDto();messageTextDto.setAgentid(safetyConfig.getAgentId());messageTextDto.setTouser(touser);messageTextDto.getText().setContent(content);String accessToken getAccessToken();MapString, Object result qywxForestClient.messageSend(messageTextDto, accessToken);return result; }其中getAccessToken()调用了前面封装的getAccessToken方法。
http://www.yutouwan.com/news/433652/

相关文章:

  • 新城区网站建设wordpress主页与文章页
  • 旅游网站系统的设计与实现青海省住房建设厅网站
  • 唯品会 一家专门做特卖的网站手机版wordpress新奇插件
  • 云南公路建设市场网站中美关系最新消息视频
  • 网站建设公司源码wordpress+有广告
  • 188自助建站系统wordpress综合网
  • php做网站怎么布局济南自助建站系统
  • 珠海金泉做网站号公司或个人码热门网站排名
  • 2017网站建设有市场吗制作一个网站大概要多少钱
  • 芜湖公司网站建设有创意的网络营销案例
  • 网站信息化建设建议网页版游戏在线玩无需登录
  • 网站site的收录数量要多远索引量关注网站建设
  • 黄冈网站推广在线上海平台网站建设公司排名
  • 360搜索怎么做网站优化网站的建设与运营专业
  • 淄博百度网站制作视频网站哪个做的好
  • php怎么建立站点网站后台怎么做下载链接
  • 劳务输送网站建设方案广州有哪几个区
  • 高端企业门户网站建设服务公司dede网站版权信息标签
  • 网站改版的目的做网站常用的技术有哪些
  • 空间网站建设阿里云建站教程视频
  • 淄博企业网站建设有限公司昆山网站设计公司
  • 南宁网站优化排名推广建设银行广州支行网站
  • 房屋中介网站建设方案没有排名的网站怎么做
  • php导航网站手机做网站的教程
  • 秦皇岛 免费建网站河北省建设银行网站
  • vs2017html5网站开发WordPress图片关闭永久链接
  • 有没有什么做统计的网站全国建设厅网站
  • 宁夏网站建设一条龙郑州做网站华久科技
  • 查互做蛋白的网站wordpress好用
  • 开发小型门户网站的方法 步骤国内网站