微信分享自定义图片标题摘要-微信官方API
我们平时在使用微信内置浏览器打开网页想要分享给好友或者发到朋友圈的时候经常会遇到这样的问题,
别人的网页分享的时候是这样的:

而我们自己的网页分享后这这样的:

看到有人说不做任何设置,微信分享时会自动抓取网页中的Title作为标题,IP地址作为概述,网页的第一个大小小于300*300的图片会作为分享中的图片,但是除了标题和概述可以,图片怎么设置分享后图片都是上图灰色的曲别针图案,所以今天来说一下如果自定义图片,标题和概述。
要实现上述功能需要使用微信官方的SDK,具体步骤如下:
第一步:微信公众号中设置js绑定域名,只有绑定的域名下的网页才可以调用微信官方的js,目前域名可以绑定3个(绑定步骤如下)
①进入公众号,点击左边主菜单栏“设置”→“公众号设置”

然后点击上方的“功能设置”

设置好后,进入下一步。
第二步:在自己的网页中引入微信官方js,http://res.wx.qq.com/open/js/jweixin-1.0.0.js,这步最简单
第三步:在页面添加配置信息和js代码
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: 'wxb5f2540cff5*****', // 必填,公众号的唯一标识
timestamp:'1414587457' , // 必填,生成签名的时间戳
nonceStr: 'Wm3WZYTPz0wzccnW', // 必填,生成签名的随机串
signature: '0f9de62fce790f9a083d5c99e95740ceb90c27ed',// 必填,签名
jsApiList: ['onMenuShareAppMessage'] // 必填,需要使用的JS接口列表
});
wx.ready(function(){
wx.onMenuShareAppMessage({
title: '测试标题', // 分享标题
desc: '测试描述', // 分享描述
link: 'http://zicp.zicp.net/ycdh_real/mobile/productInfo?id=1e72e158-f3f5-46df-8385-7fe1059e142f', // 分享链接
imgUrl: 'http://zicp.zicp.net/ycdh_real/res/images/website/h.jpg', // 分享图标
type: 'link', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
alert("分享成功!");
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败
});
});
这里主要来说明一下配置参数中的signature,签名,
获取签名的步骤:
①首先通过公众号的AppID(应用ID)和AppSecret(应用密钥)得到access_token,具体方法 获取access_token方法
②通过上一步得到的access_token得到api_ticket,具体方法:
调用接口https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
返回值json格式:
{
"errcode":0,
"errmsg":"ok",
"ticket":"sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg",
"expires_in":7200
}
③通过前两步的到的jsapi_ticket获取签名signature
示例:
- noncestr=Wm3WZYTPz0wzccnW
- jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
- timestamp=1414587457
- url=http://mp.weixin.qq.com?params=value
? 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:
string1=jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value
?对string1进行sha1签名,得到signature:
signature=sha1(string1);
经过上述算法得出 signature=0f9de62fce790f9a083d5c99e95740ceb90c27ed
注意事项
- 签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。
- 签名用的url必须是调用JS接口页面的完整URL。
- 出于安全考虑,开发者必须在服务器端实现签名的逻辑。
微信官方推出了 JS 接口签名校验工具 地址
到这为止微信分享就完成了,上述只是分享给好友,分享到朋友圈和这个类似,结合SDK官方文档照着写就可以了,分享效果出来了,看下图

OK
参考资料:
http://www.bitscn.com/weixin/583327.html
http://chitanda.me/2015/06/19/wechat-share-diy/
微信分享自定义图片标题摘要-微信官方API的更多相关文章
- PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法,php/thinkphp实现微信分享自定义文字和图片
PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法, php/thinkphp实现微信分享自定义文字和图片. 一.先看微信JS-SDK文 ...
- 微信 创建自定义菜单 向微信发起的post请求
微信 创建自定义菜单 向微信发起的post请求 Map<String, Object> res = new HashMap<String, Object>(); try { S ...
- PHP+微信分享自定义小图标
微信分享以后的小图标如下图: <script>document.addEventListener('WeixinJSBridgeReady', function onBridgeReady ...
- 微信分享自定义标题和图片的js
<script> document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { window.sh ...
- H5+.Net Webapi集成微信分享前后端代码 微信JS-SDK wx.onMenuShareTimeline wx.onMenuShareAppMessage
说明: 1/因为赚麻烦这里没有使用数据库或服务器缓存来存储access_token和jsapi_ticket,为了方便这里使用了本地的xml进行持久化这两个值以及这两个值的创建时间和有限期限. 2/每 ...
- React Native微信分享 朋友圈分享 Android/iOS 通用
超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用 2016/06/16 | React Native技术文章 | Sky丶清| 暂无评论 | 1 ...
- ionic2+Angular web端 实现微信分享以及如何跳转回分享出去的页面
微信分享,首先参考微信JS-SDK开发文档. step1:在启动文件index.html中引入微信js文件: <script src="http://res.wx.qq.com/ope ...
- React Native实现微信分享
(一)前言 现阶段大家在使用React Native开发项目的时候,基本都会使用到微信好友或者微信朋友圈分享功能吧,那么今天我就带大家实现以下RN微信好友以及朋友圈的分享功能. 刚创建的React N ...
- Vue项目history模式下微信分享总结
原文 : http://justyeh.top/post/39/ 2019-07-02 Vue微信分享 每回遇到微信分享都是一个坑,目前的商城项目使用Vue开发,采用history的路由模式,配置微信 ...
随机推荐
- pureftpd安装配置-pureftp参数详解(一)
1. 下载 #cd /usr/local/src/ #wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.30.tar.g ...
- hdu 1754 线段树入门
线段树点修改 区间最大值查询 #include <cstdio> #include <cstdlib> #include <cmath> #include < ...
- poj 2362
回溯加剪枝 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> # ...
- fedora下缺少autopoint包的解决办法
编译过程中,报错,缺少autopoint包 然而无论是yum install autopoint 还是yum search autopoint都没有理想的答案 执行yum install gettex ...
- SDUT2141数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2141&cid=1186 #include<cstdio> #include& ...
- VBS生成随机数
自动化工作中常常遇到因数据重复使业务无法提交的问题,我想到了利用随机数来解决这个问题,下面对VBS生成随机数做下解析: 一.Randomize语句 Randomize :初始化随机数生成器. 语法 : ...
- GitHub 开源工具整理
技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 ...
- [转]数据结构之Trie树
1. 概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. Trie一词来自retrieve,发音为/tr ...
- 国内为什么没有好的 Stack Overflow 的模仿者?
国内为什么没有好的 Stack Overflow 的模仿者? 个人觉得, 高端的程序员会直接上stackoverflow提问, 所以国内中文的stackoverflow必然面对低端程序员. 鉴于中国程 ...
- 使用PowerDesigner进行数据库建模入门
阅读目录 两种重要模型 创建表和主外键 创建视图和存储过程 生成数据库 PowerDesigner(简称PD)是一种强大的数据库建模工具,使用PD可以创建业务模型,UML类图等,当然最主要的功能是数据 ...