前言:

之前使用网上的办法在html页面直接放入缩略图img的方式不知道为啥,根本没有用!:
https://jingyan.baidu.com/article/c35dbcb0f5dc588916fcbc2a.html

之后在别的文章看到:微信分享链接必须调用认证了的公众号的JSSDK接口
于是开始寻找新的方式


一切的前提:一个认证了的公众号

微信JS-SDK是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包。
通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。

而我需要的大概就是微信分享功能了吧

当然,如果你只是测试的话可能申请一个公众号测试号更适合你哦:

https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Requesting_an_API_Test_Account.html

后端:

拿到测试号(或者正式号)就可以编写wxapi接口和签名算法了
官方有给出一些代码的栗子,最完善的就是php代码:

JS-SDK使用权限签名算法:

生成签名之前必须先了解一下jsapi_ticketjsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
官方的示例代码种JAVA, Node, Python 部分代码只实现了签名算法,需要开发者传入 jsapi_ticket 和 url ,其中 jsapi_ticket 需要通过 http://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=ACCESS_TOKEN 接口获取,url 为调用页面的完整 url 。
PHP 部分代码包括了获取 access_token 和 jsapi_ticket 的操作,只需传入 appid 和 appsecret 即可,但要注意如果已有其他业务需要使用 access_token 的话,应修改获取 access_token 部分代码从全局缓存中获取,防止重复获取 access_token ,超过调用频率。
注意事项:
》1. jsapi_ticket 的有效期为 7200 秒,开发者必须全局缓存 jsapi_ticket ,防止超过调用频率。

根据官方提示,自己写了个python代码,并使用redis缓存了 jsapi_ticket和access_token,防止超过调用频率。
思路:
1.获取access_token:
通过接口地址https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET,传送正确的APPID和APPSECRET就能获取
access_token,返回值还会附带有效时间。
2.获取jsapi_ticket:
思路同上,只是地址变了,所需参数从APPID等变成access_token。
以上2结果需要全局缓存,前端每次请求时先找缓存,缓存失效再请求wx接口重新获取。
3.签名算法
这个有点复杂:
参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。
(详细见代码)

html页面:

思路:后端开一个接口来返回前端需要的数据:appId,timestamp,nonceStr,signature

(没关注的点个关注哈,或者点喜欢也行)

代码在github:
https://github.com/Arrowarcher/wxApi

最后附上
微信JS-SDK说明文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

微信分享外部链接添加图片与描述(服务器端:python)相关推荐

  1. 微信分享网页链接自定义图片和文字描述

    今天开发需要微信分享网页链接自定义图片和文字描述,于是网上各种查找资料和各种看手册,遇到了好多坑,不过啃了半天以后终于把问题解决了,以防以后忘记,今天记录一下; 首先,由于微信已经发布了想要分享链接必 ...

  2. 微信分享网站链接显示缩略图和描述的方法

    最近在为一个网站添加微信分享文章显示图片和描述的功能,这个功能以前了解过,但并无完全实现过,这个功能须要认证的公众号支持.现最新微信分享网站链接显示缩略图和描述的方法(附带傻瓜式代码包 使用简单,在你 ...

  3. 微信分享网站链接带缩略图和描述

    前言: 首先你得有一个公众号! 没有去申请就OK了,具体申请流程这里不展开了. 效果预览: 导入js //导入官方js <script src="https://res.wx.qq.c ...

  4. 微信浏览器(jssdk)自定义分享按钮,自定义链接,图片,描述等

    项目中遇到的需求如下: 页面1:one.html 中通过微信浏览器右上角自带的分享,将页面2:two.html分享出去.微信浏览器以及其他各种浏览器自带的分享默认分享的是本页面地址,第一张图片作为封面 ...

  5. 微信H5分享外部链接,缩略图不显示

    微信公众号酒酒酒搜索 "微信H5分享外部链接,缩略图不显示" 查看原文 前言:最近做了一款推广茶的APP软件,展厅.产品需要分享功能:从APP内分享到H5网页:微信内打开H5网页, ...

  6. 微信分享网页链接不显示小图标怎么办

    我们自己做的网站在微信中属于第三方网站,第三方网站想要显示缩略图和描述需要有两个前提条件. 微信分享网页链接不显示缩略图怎么办 1.认证的公众号 2.备案的域名 有了公众号和域名才能去调用微信接口,也 ...

  7. 微信分享的链接,手机打开白屏,单页面应用(Hash模式下),实现微信分享

    前言:现在将相关的产品分享至朋友圈,进行宣传,成为一种很常见的方式.本文,主要想分享一下,微信分享所遇到的坑,微信分享的链接,手机打开白屏,以及产生的原因. 前端微信分享的基本步骤: 一.绑定域名 先 ...

  8. PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法,php/thinkphp实现微信分享自定义文字和图片...

    PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法, php/thinkphp实现微信分享自定义文字和图片. 一.先看微信JS-SDK文 ...

  9. php 微信分享功能_使用php怎么实现一个微信分享朋友链接功能

    使用php怎么实现一个微信分享朋友链接功能 发布时间:2021-02-15 09:11:24 来源:亿速云 阅读:68 作者:Leah 这篇文章给大家介绍使用php怎么实现一个微信分享朋友链接功能,内 ...

最新文章

  1. 数据科学的积累:海平面下的冰山 | 清华信息技术研究院郑方
  2. WSGI、Flask及Werkzeug三者之间的关系
  3. c99变长数组_你学过数组,那你知道柔性数组吗?
  4. 内存泄露检测工具--VisualC++ debugger 和 CRT 库
  5. HYSBZ - 2342 双倍回文(回文自动机)
  6. 把变量赋值给寄存器_散装 vs 批发谁效率高?变量访问被ARM架构安排的明明白白...
  7. Application Request Route实现IIS Server Farms集群负载详解
  8. [其他] 10种技巧可提升Android应用运行效果
  9. RDP(远程桌面很慢) slow performance, Hyper-V,IPv4 Checksum offload
  10. 创建、删除swap分区
  11. 【基础数据库】经济行业分类
  12. Pywifi用法 - python
  13. 随机信号分析学习笔记(6)
  14. 51单片机 驱动有源/无源蜂鸣器+Proteus仿真
  15. TongLINK/Q8.X版本的错误号整理
  16. 个人空间岁末大回报活动12月25日获奖名单
  17. 【已解决】maven打包时xxx.xxx程序包不存在
  18. LeetCode刷题系列之数组--0704.二分查找(JAVA版本)
  19. Android 11.0 12.0关机界面全屏显示(UI全屏显示)
  20. mfc 中如果存在sleep延时后按钮无法响应解决方案

热门文章

  1. 1.2 GBase 8d 目录服务产品线构架
  2. QQ空间的插件代码分享
  3. 世界因你不同--李开复
  4. Qt实训项目----(1)
  5. 关于rospy等库文件倒入pycharm的办法
  6. 爱情的几种形态(转贴)
  7. xynuoj 1423 贪婪戈尔曼(二维费用的背包问题)
  8. Ribbon重试的坑
  9. java画的花_Java2D绘制花朵
  10. 前端画圆弧html弧线的像素,[js高手之路] html5 canvas系列教程 - arc绘制曲线图形(曲线,弧线,圆形)...