无公网IP与服务器完成企业微信网页应用开发远程调试详细流程

文章目录

    • 前言
    • 1. Windows安装Cpolar
    • 2. 创建Cpolar域名
    • 3. 创建企业微信应用
    • 4. 定义回调本地接口
    • 5. 回调和可信域名接口校验
    • 6. 设置固定Cpolar域名
    • 7. 使用固定域名校验

前言

本文主要介绍如何在企业微信开发者中心通过使用内网穿透工具提供的公网域名成功验证回调本地接口服务!

企业微信开发者在应用的开发测试阶段,应用服务通常是部署在开发环境,在有数据回调的开发场景下,企业微信的回调数据无法直接请求到开发环境的服务。

内网穿透工具可以帮助开发者将应用开发调试过程中的回调请求,穿透到本地的开发环境。Cpolar是一种安全的内网穿透的服务,可以将内网下的本地服务器通过安全隧道暴露至公网,使得公网用户可以正常访问内网服务,是一款优秀内网穿透软件。

1. Windows安装Cpolar

cpolar官网:https://www.cpolar.com/

访问cpolar官网,注册一个账号,然后下载并安装客户端,具体安装教程可以参考官网文档教程。

  • windows系统:在官网下载安装包后,双击安装包一路默认安装即可。
  • linux系统:支持一键自动安装脚本,详细请参考官网文档——入门指南

cpolar安装成功后,在浏览器上访问本地9200端口【http://localhost:9200】,使用cpolar账号登录。

20230130105810

2. 创建Cpolar域名

登录后,点击左侧仪表盘的隧道管理——创建隧道,创建一个本地服务的http隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择 http
  • 本地地址:8080 (回调自己本地服务的端口)
  • 域名类型:免费选择随机域名
  • 地区:选择China

点击创建

image-20240110095148454

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的域名地址,有两种访问方式,一种是http 和https,域名我们需要记住,稍后在企业微信开发者中心创建应用的时候需要填写该域名!

image-20240110095236242

3. 创建企业微信应用

进入微信企业开发者中心,登录后,点击上方工具,再点击左侧网页应用开发,进入创建应用界面,点击创建应用

image-20240110100000160

填写相关的信息,点击下一步,配置开发信息

image-20240110100136027

把要求填写的域名信息填写上面我们在cpolar中创建的域名,然后点击创建应用

image-20240110103143588

创建后,我们可以看到,提示没有验证成功,因为后端接口服务没有开启,下面我们针对可信域名,回调数据接口在服务端编写相关的接口,上传可信域名校验文件,并启动服务完成验证

image-20240110111320276

4. 定义回调本地接口

我们按照企业微信相关文档要求,编写回调校验接口,接口逻辑是一样的,同时把可信域名校验文件放到静态文件根目录下面,具体以您自己本地服务为准,本例只是以Java Spring Boot 为例子,设置后,运行本地接口服务,注意服务端口需要设置和cpolar中填写的端口一致,本例是8080端口!

image-20240110111843015

5. 回调和可信域名接口校验

上面我们启动运行本地接口服务后,再次打开企业微信开发者中心,应用参数界面,开始可信域名校验,点击校验可信域名归属,

image-20240110115538504

然后可以看到已验证,校验通过了,下面进行回调接口校验

image-20240110115604534

分别点击两个URL申请校验

image-20240110115712774

可以看到,全部校验成功了,无公网IP,无公网服务器,使用cpolar域名同样可以完成企业微信网页应用开发调试

image-20240110115928378

小结

为了更好地演示,我们在前述过程中使用了cpolar生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆(例如:3ad5da5.r10.cpolar.top)。另外,这个地址在24小时内会发生随机变化,更适合于临时使用。

通常一般会使用固定二级子域名,原因是我希望将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:callbacktest.cpolar.cn),这样更显正式,便于流交协作。

6. 设置固定Cpolar域名

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址域名,不会随机变化【ps:cpolar.cn已备案】S

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

登录cpolar官网后台,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20240110120635951

保留成功后复制保留的二级子域名地址

image-20240110120923135

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20240110120952395

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新

image-20240110121043324

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留和固定的域名名称,域名设置固定成功后,下面进行修改之前的设置的域名参数,换成固定的域名地址!

image-20240110121241643

7. 使用固定域名校验

下面把企业微信开发者里面的应用配置参数地址换成cpolar中固定的域名地址,首先可信域名验证修改,点击编辑

image-20240110121800229

然后换成cpolar固定的域名,重新点击校验

image-20240110122646745

可以看到同样校验成功

image-20240110122717721

同样的方法,回调接口校验也是成功,这样一个cpolar固定域名就设置好了.
image-20240110122959539

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852280.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postman教程-21-Newman运行集合生成测试报告

上一小节我们Postman Newman的安装方法,本小节我们讲解一下Postman Newman的具体使用方法。 使用Newman运行集合 1、导出Postman集合: 在Postman中,选择你想要运行的集合,然后点击“导出”按钮,选择导出为“Collect…

【CS.PL】Lua 编程之道: 控制结构 - 进度24%

3 初级阶段 —— 控制结构 文章目录 3 初级阶段 —— 控制结构3.1 条件语句:if、else、elseif3.2 循环语句:for、while、repeat-until3.2.1 输出所有的命令行参数3.2.2 while.lua3.2.3 repeat.lua及其作用域 🔥3.2.4 for.lua (For Statement)…

.gitignore文件使用

.gitignore简介 .gitignore文件是Git 版本控制系统中的一个重要配置文件,它用于指定哪些文件或目录应该被Git忽略,即不被纳入版本控制中。 .gitignore编写规则 在文件中添加要忽略的文件和目录的模式。每一行表示一个模式。 使用通配符来匹配多个文件或目…

eclipse 老的s2sh(Struts2+Spring+Hibernate) 项目 用import导入直接导致死机(CPU100%)的解决

1、下载Apache Tomcat - Apache Tomcat 8 Software Downloads 图中是8.5.100的版本,下面的设置用的是另一个版本的,其实是一样。 2、先将Server配好,然后再进行导入操作。 2、选择jdk 当然,这里也可以直接“Download and instal…

python调用web_service

安装依赖 pip install suds示例代码 from suds.client import Client from suds.plugin import MessagePlugin import logging# 启用日志记录以便调试 logging.basicConfig(levellogging.INFO) logging.getLogger(suds.transport).setLevel(logging.DEBUG)class LogPlugin(Me…

ARM功耗管理框架之SCP

安全之安全(security)博客目录导读 目录 一、功耗管理框架中的SCP 二、SCP的示例 三、SCP固件 四、SCP启动流程 五、SCP的memory map 六、SCP与AP的通信 思考:功耗管理框架?SCP?PPU?LPI?之间的关系?如何配合? 一、功耗管理框架中的SCP 二、SCP的示例

【Python】中的X[:,0]、X[0,:]、X[:,:,0]、X[:,:,1]、X[:,m:n]、X[:,:,m:n]和X[: : -1]

Python中 x[m,n]是通过numpy库引用数组或矩阵中的某一段数据集的一种写法,m代表第m维,n代表m维中取第几段特征数据。 通常用法: x[:,n]或者x[n,:] X[:,0]表示对一个二维数组,取该二维数组第一维中的所有数据,第二维中…

使用本地数据对transformers模型进行微调训练

模型 transformers模型是使用比较多的模型,奈何各个都是体积大,找了一个使用人多不是很大的模型进行训练。 需要魔法 bert-base-uncased模型仓库地址 huggingface下的所有仓库都是git的,也就意味着你可以使用 git clone 可以下载仓库内所有的…

跟着AI学AI_07张量、数组、矩阵

说明这三个概念不是一个范畴的东西,但是很容易混淆,因此放到一起进行说明。 张量(Tensor) 张量是一个多维数组的通用概念,用于表示具有任意维度的数值数据。在数学和计算机科学中,张量是广泛用于表示数据的…

震坤行坤合供应链荣获“2024 LOG低碳供应链物流-最具影响力品牌商”

震坤行坤合供应链荣获“2024 LOG低碳供应链物流-最具影响力品牌商” 近日,罗戈网在青岛举办了2024第三届低碳供应链&物流创新发展高峰论坛,此次峰会聚焦“物流碳中和,可持续供应链”这一核心议题,汇聚国内外双碳践行企业、低碳…

【嵌入式系统实践】实验四综合实验部分代码

由于综合实验未给出一个固定的思路或者目标,这里仅写出部分内容,以便于期末复习背诵手写代码用。 自己写的func.h和func.c涵盖了期末所考手写代码部分,背诵过来就挂不了科。 // functions.h #ifndef FUNCTIONS_H #define FUNCTIONS_Hextern …

D 25章 进程的终止

D 25章 进程的终止 440 25.1 进程的终止:_exit()和exit() 440 1. _exit(int status), status 定义了终止状态,父进程可调用 wait 获取。仅低8位可用, 调用 _exit() 总是成功的。 2.程序一般不会调用 _exit(), 而是…

C++:调整数组顺序使奇数位于偶数前面【面试】

在C&#xff0c;如果要调整数组顺序使所有奇数位于偶数前面&#xff0c;这里提供一种简单且常用的方法&#xff1a;双指针技术。这种方法不需要额外的空间&#xff0c;并且时间复杂度为O(n)。 以下是使用双指针技术实现的示例代码&#xff1a; #include <iostream> #in…

Release和Debug的区别?Release有什么好处?【面试】

Release和Debug的区别&#xff1a; 优化&#xff1a;Debug版本通常不进行优化&#xff0c;以便更容易调试&#xff1b;Release版本则经过高度优化&#xff0c;以提高性能。调试信息&#xff1a;Debug版本包含详尽的调试信息&#xff0c;如符号信息和源代码映射&#xff1b;Rel…

对iOS开发中的链接器ld64和-ld_classic的深入理解

哈喽&#xff0c;大家好&#xff0c;随着iOS应用程序的开发日益增多&#xff0c;开发者们经常会在Xcode中遇到一些特定的编译器和链接器选项。其中&#xff0c;ld64和-ld_classic是两个常见的概念。这一期将深入介绍这两个概念&#xff0c;以帮助iOS开发者更好地理解它们的作用…

什么是全局对象和全局变量

在JavaScript中&#xff0c;全局对象和全局变量是两个重要的概念&#xff0c;它们与代码的执行环境和作用域紧密相关。 全局对象 全局对象&#xff08;Global Object&#xff09;是在代码的任何地方都能访问到的对象。在浏览器环境中&#xff0c;全局对象通常是window对象&am…

公司面试题总结(五)

25.谈一谈箭头函数与普通函数的区别&#xff0c;箭头函数主要解决什么问题&#xff1f; 箭头函数与普通函数的区别&#xff1a; ⚫ 语法简洁性&#xff1a; ◼ 箭头函数使用>符号定义&#xff0c;省略了 function 关键字&#xff0c;使得语法更为紧凑。 ◼ 对于单行函…

【Linux系统编程】进程间通信

进程间通信 1.概念 进程间通信&#xff08;IPC&#xff0c;InterProcess Communication)是指在不同进程之间传播或交换信息。 优点&#xff1a; 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程资源共享&#xff1a;多个进程之间共享同样的资源。通知事件&…

机器学习笔记 - 用于3D数据分类、分割的Point Net简述

一、简述 在本文中,我们将了解Point Net,目前,处理图像数据的方法有很多。从传统的计算机视觉方法到使用卷积神经网络到Transformer方法,几乎任何 2D 图像应用都会有某种现有的方法。然而,当涉及到 3D 数据时,现成的工具和方法并不那么丰富。3D 空间中一个工具就是Point …

《转载》前苏联的三进制计算机Setun

1、苏联的三进制计算机概述 早在 1956 年&#xff0c;就需要创建一种可在大学和实验室中使用的实用数字计算机模型。为此&#xff0c;需要一种易于学习、可靠、廉价但同时高效、专为大规模使用而设计的小型计算机。 对这种机器的要求&#xff1a;运行速度必须等于每秒数百次操作…