调用企业微信JS-SDK

本文介绍了如何在c# MVC中调用企业微信JS-SDK,包括设置应用可信域名、引入JS库、注入权限及调用打开会话接口的详细步骤。还提供了后端和前端的代码示例,并提醒了测试时的注意事项,如错误排查和不同平台的兼容问题。
摘要由CSDN通过智能技术生成

@Tomato

c# 这里以c# MVC为例,引用JS-SDK,注入应用的权限,并作一个打开微信对话窗口Demo


官方文档

1、效果图

通过点击URL --> 打开指定人对话窗口

在这里插入图片描述



2、开发流程

官方文档

2.1、设置应用可信域名

所有的JS接口只能在企业微信应用的可信域名下调用(包括子域名),且可信域名必须有ICP备案且在管理端验证域名归属。
验证域名归属的方法在企业微信的管理后台“我的应用”里,进入应用,设置应用可信域名。

企业微信申请域名验证
eg: 将WW_verify_gPO4DZteSvyQZNRk.txt文件放到IIS文件夹底下



2.2、引入js

调用 wx.agentConfig需要引入 jwxwork sdk

<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js" type="text/javascript"></script>


2.3、注入应用的权限

前提:

  1. 企业微信的corpid
  2. 企业微信的应用id
  3. 企业微信的secret

signature获取:
corpid + secret --> access_token --> ticket --> 拼接参数加密
JS-SDK使用权限签名算法

wx.agentConfig({
   
    corpid: '', // 必填,企业微信的corpid,必须与当前登录的企业一致
    agentid: '', // 必填,企业微信的应用id (e.g. 1000247)
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名,见附录-JS-SDK使用权限签名算法
    jsApiList: ['selectExternalContact'], //必填,传入需要使用的接口名称
    success: function(res) {
   
        // 回调
    },
    fail: function(res) {
   
        if(res.errMsg.indexOf('function not exist') > -1){
   
            alert('版本过低请升级')
        }
    }
});


2.4、 调用打开会话接口

注入应用权限之后就可以测试接口了,打开浏览器调试报错: Uncaught TypeError: wx.agentConfig is not a function
只能发布,然后通过企业微信打开URL才能测试接口

wx.openEnterpriseChat({
   
        // 注意:userIds和externalUserIds至少选填一个。内部群最多2000人;外部群最多500人;如果有微信联系人,最多40人
    userIds: 'zhangsan;lisi;wangwu',    //参与会话的企业成员列表,格式为userid1;userid2;...,用分号隔开。
    externalUserIds: 'wmEAlECwAAHrbWYDOK5u3Bf13xlYDAAA;wmEAlECwAAHibWYDOK5u3Af13xlYDAAA', // 参与会话的外部联系人列表,格式为userId1;userId2;…,用分号隔开。
    groupName: '讨论组',  // 会话名称。单聊时该参数传入空字符串""即可。
    chatId: "CHATID", // 若要打开已有会话,需指定此参数。如果是新建会话,chatId必须为空串
    success: function(res) {
   
         var chatId = res.chatId; //返回当前群聊ID,仅当使用agentConfig注入该接口权限时才返回chatId
        // 回调
    },
    fail: function(res) {
   
        if(res.errMsg.indexOf('function not exist') > -1){
   
            alert('版本过低请升级')
        }
    }
});


3、完整代码

后端
重点在于怎么配置wx.config(为了安全,所有的参数都在服务端获取)

public class HomeController : Controller
{
   

    //private Dictionary<string, DateTime> orderDic = new Dictionary<string, DateTime>();
    private static string lastOrderNo;
    public ActionResult Index()
    {
   
        return View();
    }

    /// <summary>
    /// 获取AccessToken
    /// </summary>
    /// <returns></returns>
    private static string GetAccessToken()
    {
   
        //https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
        string tokenUrl = string.Format(<
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值