做微信H5的朋友都知道,在过去要设置"分享到朋友圈"的缩略图,是非常简单的一件事情,只需要制作一张300*300的缩略图片(如命名为300.jpg),然后在页面head部分的开头引入微信朋友圈缩略图代码即可。

//其余代码...

这一招本来是屡试不爽的。本人也已经有挺长时间没有做微信中的H5了,直到这两天,因为手头要做一个简单的微信H5,所以拾掇拾掇又用了这招。没想到,这次居然失效了。不管怎么试,分享朋友圈的时候,缩略图都出不来。一直是这么个默认的图标:

然后再去网上看了下,这才发现微信团队在今年3月29号就发了一篇文章《JSSDK自定义分享接口的策略调整》,里面明确说明了:

为规范自定义分享链接功能在网页上的使用,自2017年4月25日起,JSSDK“分享到朋友圈”及“发送给朋友”接口,自定义的分享链接,其域名或路径必须与当前页面对应的公众号JS安全域名一致,否则将调用失败。

例如,当前页面是 http://www.abc.com/123,其公众号对应的JS安全域名为 http://www.abc.com 以及 http://www.xyz.com,则分享自定义链接 http://www.abc.com/456 可以成功,分享 http://www.xyz.com/123 或 http://www.def.com/123 均将失败。

对于未接入微信JSSDK或已接入但JSSDK调用失败的网页,被用户分享时,分享卡片将统一使用默认缩略图和标题简介,不允许自定义。

接口完整用法请参考《微信JSSDK说明文档》,请开发者及时完成调整。

好吧。还好我手头服务号和企业号(还没有升级到企业微信)的认证账号都有。我看了下,两者的文档分别在以下地址的“分享接口”部分(其实没啥大区别):

服务号:https://mp.weixin.qq.com/wiki?

企业号:微信JS-SDK接口 - 企业号开发者接口文档

因为手头要推的东西是放在企业号里的,于是以企业号为例,简要说明一下开发过程。

首先,在页面中引入微信的JS-SDK的JS文件。

然后,取accesstoken,以PHP和微信企业号为例(最好存在服务器上,没过期前从缓存文件里取,以避免频繁调用)。如果使用微信服务号的话,API地址和企业号有所不同。

$output = http_post_data("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=******&corpsecret=*****"");

$res = json_decode($output, true);

$accessToken = $res["access_token"];

接下来,获取jsapi_ticket,同理,最好缓存在服务器上而非每次调用。

$output = http_post_data("https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=".$accessToken,"");

$getTicket = json_decode($output, true);

$ticket = $getTicket['ticket'];

然后,获取nonceStr,这个微信已经给出了算法,照着用就行。

function createNonceStr($length = 16) {

$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

$str = "";

for ($i = 0; $i < $length; $i++) {

$str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);

}

return $str;

}

$nonceStr = createNonceStr();

然后,取timestamp,即当前时间。

$timestamp = time();

接下来取url值,这个必须是安全域名中设置的域。

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";

$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

东西都准备好了,拼到一起后sha编码,然后打成一个包。

$string = "jsapi_ticket=".$ticket."&noncestr=".$nonceStr."&timestamp=".$timestamp."&url=".$url;

$signature = sha1($string);

$signPackage = array(

"appId"    => "******",

"nonceStr"  => $nonceStr,

"timestamp" => $timestamp,

"url"      => $url,

"signature" => $signature,

"rawString" => $string

);

PHP的部分完成了,最后就是在Body前用JS注册“分享到朋友圈”这一个API,API的名称为onMenuShareTimeline,在其中注册imgUrl,即可设置好分享缩略图。

wx.onMenuShareTimeline({

imgUrl: '需要的缩略图地址'

});

wx.config({

debug: false,

appId: '<?php echo $signPackage["appId"];?>',

timestamp: <?php echo $signPackage["timestamp"];?>,

nonceStr: '<?php echo $signPackage["nonceStr"];?>',

signature: '<?php echo $signPackage["signature"];?>',

jsApiList: [

'onMenuShareTimeline'

]

});

在上面的代码中,我只设置了imgUrl这一个参数,实际上,还能够在这里设置标题等其他的参数。

wx.onMenuShareTimeline({

title: '', // 分享标题

link: '', // 分享链接,该链接域名必须与当前企业的可信域名一致

imgUrl: '', // 分享图标

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

现在,刷新一下,再次选择“分享到朋友圈”,就可以看到你设置的缩略图啦。

微信分享php网站不带缩略图,分享网页到微信朋友圈,怎样才能带缩略图?相关推荐

  1. 如何实现分享网站文章到微信朋友圈时显示指定缩略图或LOGO

    当下朋友圈很火,很多企业都将微信朋友圈作为品牌传播的途径,经常会发一些精彩的文章到微信朋友圈供大家自发传播,这样的想法很好,对于优质的内容,网友们也乐于转发与朋友们分享,对品牌宣传与推广确实是有好处的 ...

  2. 微信 Mac 版 Beta 3.0.0.1 内测:可以浏览朋友圈了

    3月11日晚间,微信推出3.0版本的Mac客户端,支持"浏览朋友圈"功能.目前,仅有小部分用户能通过内测版本使用. 微信 for Mac 3.0.0.1 更新日志 可以浏览朋友圈 ...

  3. php朋友圈上传多个图片不显示不出来,求教!文章分享到微信朋友圈,链接的缩略图不显示怎么解决?...

    检查下微信公众号是否正确配置了白名单等信息,以及系统设置中,微信公众号信息是否配置正确:如全部配置正确,找到views/default/m/footer.tpl.htm,中<?php if (i ...

  4. 微信文件撤回时间多长_微信悄悄上线新玩法:拍了拍、朋友圈可重新编辑

    当当当,我猜大家应该是看到这么吸引人的标题进来的吧,确实这个超级实用的功能你还真的要知道. 今天写的部分内容,其他的全部内容将会在安卓微信7.0.16正式版发布的时候进行一次大汇总. 我猜大家昨天应该 ...

  5. 回顾微信之父张小龙演说:超1亿人朋友圈设置了三天可见

    2019年1 月 9 日,2019 微信公开课在广州开幕,主论坛未露面的腾讯集团高级执行副总裁兼微信事业群总裁张小龙,终于露面,然后一张口就是整整四小时.当时演讲的内容很实在,也真情实感的讲述了微信的 ...

  6. 微信云服务器发长视频朋友圈,今天才知道,微信朋友圈还能发5分钟长视频,超简单,一看就会...

    原标题:今天才知道,微信朋友圈还能发5分钟长视频,超简单,一看就会 朋友圈里不仅可以晒照片 还能分享一些好玩的小视频 但通常来说 小视频最多只能拍15秒 有些长时间的视频就发不了了 今天,厦门银龄教您 ...

  7. 微信新玩法,只需三步就可以在朋友圈发送竖排文字,好看又酷炫!

    很多小伙伴喜欢用微信朋友圈来记录生活中的点点滴滴,那么如何才能让自己的动态在朋友圈中看起来与众不同呢? 今天给小伙伴们分享一个有意思的微信小程序,只需几步就能设置竖排文字,效果超棒,赶快一起学起来吧! ...

  8. 微信机器人,实时获取好友、群消息,拉取朋友圈数据

    19年年末无聊的时候研究了下微信的机器人,发现并不是很难,当时主要实现了好友.群消息的实时获取,以及从微信本地数据库中拉取朋友圈数据.朋友圈数据的获取并不难,难的是对数据的解析,因为数据都是加密存储的 ...

  9. 微信内测版来啦:继续沉浸式体验,朋友圈大变样 [联络易]

    在经历了两次公众号设计调整后,微信终于迎来了 Android 6.6.7 内测版本的更新.联络易也第一时间收到了内测邀请. 在这次更新中整体视觉的变化比较大,更新主要集中在朋友圈.公众号和聊天会话界面 ...

最新文章

  1. shell中的函数shell中的数组告警系统需求分析
  2. KernelBuildpackageHowto
  3. Android7.1 Presentation双屏异显原理分析
  4. 多个网页用一个html,在多个页面使用同一个HTML片段的代码-javascript技巧
  5. JAVA 13 (集合框架)
  6. python变成exe后启动弹出选文件窗口_通过.py脚本执行的.exe文件隐藏控制台窗口...
  7. Android之layout属性介绍
  8. 斯坦佛编程教程-Unix编程工具(五)
  9. LeetCode 1695. 删除子数组的最大得分(前缀和+哈希+双指针)
  10. 关于C#中虚方法重载的说明
  11. SQL Server高级查询之常见数据库对象(触发器)第五章节
  12. 组态软件android版,昆仑通态组态软件
  13. 以撒的结合:胎衣+(启示录Revelations MOD)不起作用失效(道具可以捡但是没作用失效等)
  14. 刀友访谈:哪有什么天生的设计大师,有的是长久的喜爱坚持
  15. 矩阵卷积、矩阵相乘以及频域相乘之间的关系
  16. 使用hping3进行DoS攻击
  17. 计算机找不到硬盘分区,电脑硬盘分区不见了怎么办
  18. 神经计算棒官方例程演示及填坑
  19. 信息学奥赛一本通2011:【20CSPS提高组】贪吃蛇
  20. window global

热门文章

  1. autojs之自动答题
  2. 论坛介绍 | COSCon'22  女性论坛 ( L )
  3. webservice 实现与his系统对接_多平台订单管理系统:传统企业实现无缝对接多渠道资源...
  4. 数据库压力测试方法小结
  5. 你以为越复杂的密码越安全?小心那些错误认知
  6. vscode win10笔记本 蓝屏_史上最详细的win10蓝屏错误代码大全详解
  7. 运行vue报错npm ERR! A complete log of this run can be found in解决办法
  8. [Linux]tomcat 严重: Could not contact localhost:80. Tomcat may not be running
  9. 帝国cms灵动标签调用当前栏目下所有子栏目链接,子栏目名称,子栏目图片
  10. Win11默认下载路径设置教程