微信分享遇到的坑

从0开始微信分享#

一个h5页面的项目,快做完了,想到应该加一个微信分享的功能,于是开始了3天艰难的跨坑。首先,去查微信jsdk的官方文档,配置信息中需要appid等微信提供的信息。可是我没有啊,然后我这个大聪明从appid后面的公众号唯一标识中想到这些信息可以从公众号中获取。于是果断申请了一个公众号,获得了appid和appsecret。然后就是配置信息中的timestamp、nonceStr,signature,继续看文档,发现这些是由后端提供,又花了半天去研究怎么搭建一个后端服务器,将接口信息配置好,可一直提示配置失败。查了半天资料,尝试了很多次,最后自己想明白了。我配置的接口是局域网,外面访问不了啊。然后我开始在网上找免费的服务器,甚至想暂时买个服务器了,还好余额提示我,让我抑制了冲动的小手。我又想到了可以用内网穿透,一顿查找,发现了natapp,一段操作,可以通过外网访问本地服务了。但此时,我发现个人申请的公众号没有调用接口的权限。不过呢,微信提供了测试公众号,我赶紧去申请一个。可是我搭建的服务器一直配置失败。又去网上找资料。然后发现了这个大兄弟的文章,留下了悔恨的泪水。因为根本不需要去搭建服务器,可以通过发送请求直接获取。要是我找一点找到就不至于走这么多弯路了。按照文章中配置好之后,调用一直提示invalid signature,又查了很多资料,发现是安全域名配置错了。现在找不到是在那篇博客中看到的了,意思就是人让你配置域名,没让你提供url,简而言之就是不需要http。一切准备就绪,从外网访问控制台一直报错,websocketclient一直打印ws://x.x.x.x/ws链接失败,我本想不管它,可它太闹腾了,一直打印,我都不知道微信调用分享是否成功了。又花大把的时候去找资料,可是都没有用。然后我自己debug,浅浅的分析了一下。通过ip地址和localhost访问不会报错,但是通过域名会报错,那应该是要给域名配置一个代理,当websocket通过域名访问时代理到ip地址,找了些资料,没做出来,遂放弃。去做了个午饭,突然想到,在client中配置ws://0.0.0.0/ws时websocket会根据访问的url发起连接,那我直接配置本机ip地址的话,不论从哪里访问,websocket都会向本机ip发起连接,果然,外网访问就没报错了。接下来遇到的一个问题就是我在微信中点击分享之后,发表内容框中出现当前页面的地址,而不是在下面形成一个连接。又要开始找资料了。我都不知道该怎么描述这个问题,还好找到了一篇文章,可以先收藏页面,再通过收藏进入就可以正常分享了。


2023年7月24号
微信分享时一直提示invalid signaure,找了很久的问题才发现,微信JS接口签名校验工具中的url配置错了,签名规则里面写了,对于没有只有域名没有 path的URL,访问时会自动加上/ ,因此在配置的时候要在域名后面加一个/ ,真是不看说明浪费了半天的时间。

作者:xxjing

出处:https://www.cnblogs.com/xxjing/p/17095760.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   淡蓝色的点  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示