链接发到群里,卡片上是一张灰底问号

微信分享设置 使用文档
微信分享设置 使用文档

文章写得再好,转发到微信群时如果只有一个光秃秃的链接和一张默认图,点击率会低很多。微信的分享卡片长什么样,取决于页面里有没有配 JS-SDK 的分享参数。

微信分享设置做的就是这件事:给页面配上分享标题、描述、缩略图,让转发出去是一张正常的卡片。

三步配好

第一步,填公众号信息。后台「系统设置 → 微信分享设置」里填 AppId、AppSecret,再选一张默认分享图。AppSecret 不是 AppID,两个在公众号后台的「开发 → 基本配置」里都能拿到,别填混。

后台的微信分享设置:公众号 AppId、AppSecret 两个输入框,下面是默认分享图片的上传区,标注「获取到当前页面的图片失败时自动调取的封面图」

第二步,配 IP 白名单。同一个页面里还有「IP 白名单」,把服务器的出口 IP 填进公众号后台。这一步漏了的表现是接口报错 40164 invalid ip,但页面上看不出来,只在抓包时能看到。

第三步,配域名。公众号后台 → 设置与开发 → 公众号设置 → 功能设置,把站点的域名加到「JS接口安全域名」和「业务域名」里。域名要带协议头校验,且必须是已备案的。

三项配完,打开「启用微信分享」,页面在微信里被转发时就会带自定义的标题、描述、图。

单页怎么设

不用改后台,直接在模板的任意元素上加属性:

<div data-wechat-share-title="分享标题"
     data-wechat-share-desc="分享描述"
     data-wechat-share-image="分享图片地址">
    ...
</div>

模块会去页面里找这三个属性,取到就用作分享内容。放在 <body> 上就是整页统一,放在某篇文章的容器上就是这篇文章自己的分享信息。

这是这套做法里最舒服的一点:内容页不用为分享单独写一套逻辑。模板里已经有标题和封面,把它们同时写进 data- 属性就行,改内容的时候分享信息跟着变。

默认图和「优先使用默认图」

配置里有两个跟图相关的项:

  • 默认分享图片:页面里找不到图时用它;
  • 优先使用默认分享图标:打开之后,不管页面有没有图,都用默认图。

第二个开关看起来多余,实际有用:站里的文章封面尺寸不一,有些是竖图,有些截图里带一堆文字,做成方形缩略图后很难看。统一用一张设计好的品牌图,转发出去更整齐。代价是每篇分享长得都一样,看不出内容。

折中做法是关掉「优先」,让页面图生效,同时把模板里的封面裁成接近 1:1。微信的分享缩略图是方的,横图会被裁中间那一块。

调试和两个必踩的坑

配置里有一个「启用微信分享调试」。打开之后,在微信里打开页面会弹出 config:ok 之类的提示,用来确认签名有没有成功。

坑一:配好了但不生效。

这是最常见的反馈。现象是:调试弹窗显示 config 成功,但转发出去的卡片还是默认样式。

原因不在代码。微信对网页分享有一条没写在文档里的限制:链接必须从公众号的对话页面点进去,分享才会带上自定义信息。在微信开发者工具里、在电脑版微信里、从浏览器复制链接发到群里,都不生效。

所以验证的方法是:手机上、在公众号对话框里点开链接、再点右上角转发。其他路径测不出来。这一条不是官方文档写的,是社区里大量开发者反复验证出来的,值得先知道,能省掉半天排查。

坑二:noPermissionJsApi。

调试弹窗里出现这样的错误:

noPermissionJsApi:["updateAppMessageShareData", "updateTimelineShareData"], errMsg: "config:ok"

意思是签名 OK 了,但这个公众号没有调用分享接口的权限。去公众号后台 → 接口权限 → 分享接口,看「分享到朋友圈」和「分享给朋友」是不是已开启。未认证的订阅号通常没有这两项权限,这种情况改代码没用,得先完成认证。

适合谁用

内容站。文章、资讯、案例,转发是主要流量来源之一,卡片样式直接影响点击。

有公众号的服务号。已经认证、有分享接口权限,配一遍就能用。

不适合:纯功能后台、内部系统。没人会转发这些东西。

也不适合:还没做公众号认证的站。AppId 和 Secret 拿得到,接口权限拿不到,配完只会多一个错误提示。

一点补充

这套东西依赖微信的 JS-SDK 签名,签名用的 access_token 有有效期(两小时),模块内部会缓存和刷新。如果站点的服务器时间不准,签名会失败——表现同样是「调试不通过」。

服务器时间偏差超过几分钟就会出现这个问题,部署后对一下 NTP。这是所有接微信 JS-SDK 的项目都会遇到的一类故障,跟模块本身没关系。

更新: 2026-11-13 18:32:45
QQ
微信
客服