企业微信开发

14 篇文章 4 订阅
1 前提准备工作
1 创建应用

企业微信分享是在应用下的,所以要先创建一个企业微信的应用,这个应用相当于微信上的公众号

在这里插入图片描述

2 进入应用获取秘钥

在这里插入图片描述

秘钥需要在企业微信管理员手机企业微信中才能查看到

3 配置js域名

网页授权功能域名是跟用户登录相关的,js-sdk域名是跟网页js功能相关的,比如 分享、获取当前企业微信用户上下文等

在这里插入图片描述

域名的配置是需要校验的,需要下载一个txt文件放到域名的根目录下, 如下图

在这里插入图片描述

4 获取企业id

在企业微信管理后台下我的企业中可以查看到企业的企业id

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cOtXOuKK-1690192878024)(C:\Users\m1877\AppData\Roaming\Typora\typora-user-images\image-20230724151446691.png)]

5 获取企业微信秘钥

企业微信开发有多种秘钥,一种是企业微信的秘钥,相当于是整个企业的秘钥,一种是应用的秘钥

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pK2iEYSV-1690192878024)(C:\Users\m1877\AppData\Roaming\Typora\typora-user-images\image-20230724150940791.png)]

2 企业微信h5开发
1 获取企业微信的access_token

请求:

https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=企业微信id&corpsecret=企业微信秘钥

响应:

{
	"errcode": 0,
	"errmsg": "ok",
	"access_token": "企业微信秘钥",
	"expires_in": 7200
}
2 获取企业微信的js-api-ticket

请求:

https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=企业微信的access_token

响应:

{
	"errcode": 0,
	"errmsg": "ok",
	"ticket": "企业微信的js-api-ticket",
	"expires_in": 7200
}
3 获取应用 的access_token

请求:

https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=企业id&corpsecret=应用秘钥

响应:

{
	"errcode": 0,
	"errmsg": "ok",
	"access_token": "应用access_token",
	"expires_in": 7200    // 有效期两小时,不能频繁调用,需要将这个秘钥存起来
}

需要注意的是,需要先在应用中配置企业可信IP才能调用企业微信api接口,不然的话可能会出现IP异常调用错误的问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FxOnSaGy-1690192878025)(C:\Users\m1877\AppData\Roaming\Typora\typora-user-images\image-20230724151827113.png)]

4 获取应用的js-ticket

请求

https://qyapi.weixin.qq.com/cgi-bin/ticket/get?access_token=上面接口获取的的应用access_tokentype=agent_config

响应:

{
	"errcode": 0,
	"errmsg": "ok",
	"ticket": "应用的js-ticket",
	"expires_in": 7200
}
5 js初始化h5环境
$.ajax({
      type: "GET",
      url: "https://baidu.com/qywx/get_js_sign",
      data: "",
      success: function (result) {
        result = JSON.parse(result);
        init_wx_config(result);
      },
    });

// 初始化微信h5环境
function init_wx_config(data) {
    
		wx.config({
            beta: true, 
            appId: data.corpid, // 必填,企业微信的corpID
            timestamp: data.timestamp, // 必填,生成签名的时间戳
            nonceStr: data.noncestr, // 必填,生成签名的随机串
            signature: data.sign, // 必填,签名,见 附录-JS-SDK使用权限签名算法
            jsApiList: ["agentConfig"], // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
          });
        wx.ready(function (err) {
            console.log("微信sdk基础环境初始化成功");
            wxReady(data);
          });
    }


// 注册应用功能权限
 function wxReady(config) {
      console.log("执行企业微信初始化操作!", config);
      a = [];

      wx.agentConfig({
        beta: true,
        corpid: "企业id", // 必填,企业微信的corpid,必须与当前登录的企业一致
        agentid: 1000003, // 必填,企业微信的应用id (e.g. 1000247)
        timestamp: config.timestamp, // 必填,生成签名的时间戳
        nonceStr: config.noncestr, // 必填,生成签名的随机串
        signature: config.agent_sign, // 必填,签名,见附录-JS-SDK使用权限签名算法
        jsApiList: [
          // 所有用到的企微方法,都需要在这里注入权限,否则会无法调用
          "openUserProfile", // 打开用户信息
          "openEnterpriseChat", // 创建会话
          "openExistedChatWithMsg", // 打开会话并发送消息
          "updateEnterpriseChat", // 更新会话信息,修改群成员
          "selectExternalContact", // 选择外部联系人
          "getContext", // 获取群内容
          "getCurExternalChat", // 获取群id
          "sendChatMessage", // 给当前群发送消息
          "shareToExternalContact", // 分享给外部联系人
          "shareToExternalChat", // 分享内容到外部群
          "getCurExternalContact",
          "onMenuShareAppMessage",  // 分享给联系人
        ],
        success: function (res) {
          console.log("企微应用功能权限注册成功");

          // 分享功能配置
          wx.onMenuShareAppMessage({
            title: "aaa", // 分享标题
            desc: "bbb", // 分享描述
            link: "http://baidu.com", // 分享链接;在微信上分享时,该链接的域名必须与企业某个应用的可信域名一致
            imgUrl: "http://baidu.com/share.jpg", // 分享图标
            enableIdTrans: 1, // 是否开启id转译,不填默认为0
            success: function () {
              // 用户确认分享后执行的回调函数
            },
            error: function (res) {
              if (res.errMsg.indexOf("no permission") > 0) {
                alert("未agentConfig");
              }
            },
            cancel: function () {
              // 用户取消分享后执行的回调函数
            },
          });
    }

后续开发可以查看微信提供的js-sdk方法,如 获取外部联系人、分享消息、微信客服工具栏等功能, 上文主要记录企业微信h5初始化

6 python生成js签名
import hashlib

from sanic import Sanic
from sanic.response import JSONResponse, HTTPResponse
from sanic.request import Request
from sanic_cors import CORS

app = Sanic("js-sdk")

# 企业jsapi-ticket
jsapi_ticket = "企业微信的js_api_ticket"

# 应用js-api-ticket
agent_ticket = "应用js-ticket"

@app.get("/get_js_sign")
async def get_js_sign(request):
    noncestr = "abdgeTehgrafeRwf"
    url = "https://baidu.com"
    timestamp = int(time.time())
    sign_str = "jsapi_ticket={}&noncestr={}&timestamp={}&url={}".format(jsapi_ticket, noncestr, timestamp, url)
    agent_str = "jsapi_ticket={}&noncestr={}&timestamp={}&url={}".format(agent_ticket, noncestr, timestamp, url)

    sign = hashlib.sha1(sign_str.encode("utf-8")).hexdigest()
    agent_sign = hashlib.sha1(agent_str.encode("utf-8")).hexdigest()

    return JSONResponse({"noncestr": noncestr, "timestamp": timestamp, 
                         "sign": sign, "agent_sign": agent_sign})


3 微信客服开发

待更新

4 自建应用开发

待更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!关于Java企业微信开发,有以下几个方面的内容可以探讨: 1. 企业微信开发平台:企业微信提供了开放的API,开发者可以通过该平台进行接口调用和应用开发。您可以在企业微信开发者文档中找到相关的API文档和示例代码。 2. Java SDK:为了方便Java开发者使用企业微信API,可以使用第三方的Java SDK,如WeChatWork-Java-SDK或者企业微信官方提供的Java SDK。这些SDK封装了企业微信API的调用方法,提供了便捷的接口和功能。 3. 接口调用:使用Java SDK或直接发送HTTP请求进行接口调用。企业微信API提供了丰富的接口,包括发送消息、获取通讯录、管理应用等。您可以根据需求选择相应的接口,并按照文档提供的参数和格式进行调用。 4. 消息推送:企业微信提供了企业内部消息推送的功能,可以通过发送消息给指定用户或群聊来实现。您可以使用Java SDK提供的方法来发送不同类型的消息,如文本消息、图片消息、图文消息等。 5. 应用开发:企业微信支持应用开发,您可以根据自己的需求开发定制化的应用。例如,可以开发审批系统、打卡系统、会议预订系统等。使用Java开发企业微信应用,可以利用企业微信提供的API和SDK来实现各种功能。 以上是关于Java企业微信开发的一些基本信息,希望对您有所帮助。如果有具体的问题或者需要进一步了解,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值