如何使用微信JS-SDK实际分享功能

步骤1 生成签名

  • 01

    登录你的微信平台,点击“公众号设置”。

  • 02

    点击“功能设置”,然后点击“设置”。

  • 03

    设置JS接口安全域名。这里填写的是一级域名,不带www和http。最多可以设置三个域名。设置完后点击确定。(多说一句,相比以前的分享没有任何域名限制,这里设置安全域名,目的是为了当发现此公众平台发现诱导分享行为时,可以根据此域名追溯到所有分享出去的链接,以及通过这些链接增加的粉丝。这样,微信就可以牢牢控制了你的微信平台,一旦发现违规,让分享链接失效,删除掉诱导行为增加的粉丝,是瞬间就可以完成的。因此,微信平台的开发者,一定要合理来使用分享功能,不要因小失大。等到你的微信平台被封,估计哭都来不及)

  • 04

    在开发者中心中获取你的AppID和AppSecret,接下来在获取令牌时,需要这两个信息。

  • 05

    获取令牌。在服务器端完成,代码如下: function wx_get_token() { $token = S('access_token'); if (!$token) { $res = file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='            .'你的AppID'.'&secret='            .'你的AppSecret'); $res = json_decode($res, true); $token = $res['access_token']; // 注意:这里需要将获取到的token缓存起来(或写到数据库中) // 不能频繁的访问https://api.weixin.qq.com/cgi-bin/token,每日有次数限制 // 通过此接口返回的token的有效期目前为2小时。令牌失效后,JS-SDK也就不能用了。 // 因此,这里将token值缓存1小时,比2小时小。缓存失效后,再从接口获取新的token,这样 // 就可以避免token失效。 // S()是ThinkPhp的缓存函数,如果使用的是不ThinkPhp框架,可以使用你的缓存函数,或使用数据库来保存。 S('access_token', $token, 3600); } return $token; } 注意:返回的access_token长度至少要留够512字节。接口返回值: {"access_token":"ACCESS_TOKEN","expires_in":7200} {"access_token":"vdlThyTfyB0N5eMoi3n_aMFMKPuwkE0MgyGf_0h0fpzL8p_hsdUX8VGxz5oSXuq5dM69lxP9wBwN9Yzg-0kVHY33BykRC0YXZZZ-WdxEic4","expires_in":7200}

  • 06

    获取jsapi的ticket。jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。 function wx_get_jsapi_ticket(){ $ticket = ""; do{ $ticket = S('wx_ticket'); if (!empty($ticket)) { break; } $token = S('access_token'); if (empty($token)){ wx_get_token(); } $token = S('access_token'); if (empty($token)) { logErr("get access token error."); break; } $url2 = sprintf("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=%s&type=jsapi", $token); $res = file_get_contents($url2); $res = json_decode($res, true); $ticket = $res['ticket']; // 注意:这里需要将获取到的ticket缓存起来(或写到数据库中) // ticket和token一样,不能频繁的访问接口来获取,在每次获取后,我们把它保存起来。 S('wx_ticket', $ticket, 3600); }while(0); return $ticket; } 接口返回值: {"errcode":0,"errmsg":"ok","ticket":"sM4AOVdWfPE4DxkXGEs8VMKv7FMCPm-I98-klC6SO3Q3AwzxqljYWtzTCxIH9hDOXZCo9cgfHI6kwbe_YWtOQg","expires_in":7200}

  • 07

    签名,将jsapi_ticket、noncestr、timestamp、分享的url按字母顺序连接起来,进行sha1签名。 noncestr是你设置的任意字符串。 timestamp为时间戳。 $timestamp = time(); $wxnonceStr = "任意字符串"; $wxticket = wx_get_jsapi_ticket(); $wxOri = sprintf("jsapi_ticket=%s&noncestr=%s&timestamp=%s&url=%s", $wxticket, $wxnonceStr, $timestamp, '要分享的url(从http开始,如果有参数,包含参数)' ); $wxSha1 = sha1($wxOri);

    步骤2 添加JS代码

    • 01

      生成签名后,就可以使用js代码了。在你的html中,进行如下设置即可。 <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script type="text/javascript"> // 微信配置 wx.config({ debug: false, appId: "你的AppID", timestamp: '上一步生成的时间戳', nonceStr: '上一步中的字符串', signature: '上一步生成的签名', jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 功能列表,我们要使用JS-SDK的什么功能 }); // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在 页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready 函数中。 wx.ready(function(){ // 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: '分享标题', // 分享标题 link:"分享的url,以http或https开头", imgUrl: "分享图标的url,以http或https开头" // 分享图标 }); // 获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: '分享标题', // 分享标题 desc: "分享描述", // 分享描述 link:"分享的url,以http或https开头", imgUrl: "分享图标的url,以http或https开头", // 分享图标 type: 'link', // 分享类型,music、video或link,不填默认为link }); }); </script>

    (0)

    相关推荐

    • 微信快速拍照分享功能使用技巧图解

      微信快速拍照分享怎么使用?在微信5.2的本版中最大的改变就是把界面变的平面化,让用户看界面的时候感觉更加清爽,此外微信5.2本版中增加了拍照分享功能,下面小编就告诉大家微信快速拍照分享使用方法!注:小 ...

    • 怎样实现应用的微信分享功能?

      自己的APP如何添加微信分享功能? 要想自己的应用可以实现微信分享功能,就要到微信开放平台中申请这个应用针对的APPID. 提示:APPID没有通过审核时,是无法使用的. 下面我们就来看看申请微信Ap ...

    • ios微信6.0.2更新内容有哪些 苹果微信6.0.2新功能一览

      ios微信6.0.2更新内容有哪些 苹果微信6.0.2新功能一览 其中,通过系统相册直接分享至朋友圈功能还是非常使用的,在此之前新浪微博已经早已实现该功能,可以有效帮助用户减少操作步奏。另外,随着智能 ...

    • 元宵傲游云浏览器分享功能送祝福

      新年的余温已渐渐散去,情人节也还遗留着阵阵浪漫气息,五彩缤纷的元宵节接踵而至。在这暖意融融的节庆里,你是否也是想将自己的快乐与祝福分享给身边的每一位亲朋好友呢?傲游云浏览器“云分享”功能以三种方式,三 ...

    • 微信小程序提供哪些功能 微信小程序提供的功能介绍

      微信小程序即将上线,不少小伙伴应该已经试过了.不少小伙伴在使用的时候想知道这个微信小程序能不能做游戏,想知道的就一起来看看吧. 微信小程序提供的功能介绍 1.提供小程序页概念:支持分享当前信息,例如分 ...

    • 微信朋友圈不能分享手机视频怎么回事 微信朋友圈不能分享手机视频解决办法

      最近微信更新,用户可以进行分享自己手机里的视频,这一举措受到很多人的喜欢.但是很多小伙伴发现自己并不能分享,不知道是怎么回事.因此就让小编给大家讲讲解决办法吧. 微信朋友圈不能分享手机视频解决办法 1 ...

    • 微信搜索现这么强大!微信内整体的搜索功能玩法介绍

      微信现在已是v6.3.30 版本,但多少人知道,它在10 月28 日上线的v6.3.29 版本里已悄悄强化了微信内整体的搜索功能. 在“朋友圈”和“文章” 2 个搜索入口,微信针对性地增加了搜索条件选 ...

    • 微信收藏中的笔记功能怎样使用

      微信收藏中有一个很有用的功能——笔记功能.可能很多朋友不知道,还在用一些专业的笔记APP来记笔记,然后再和微信绑定挺麻烦的,一般的图片文字录音等形式的笔记,其实都可以用微信自己本身的笔记功能来记录,非 ...

    • 微信两项重磅新功能曝光:服务和群收款

      高调推出小程序之后,微信瞬间掀起阵阵浪潮.而这波浪潮平静之后,微信再次悄悄测试了两项新功能,激起了人们的好奇心. 近日,多个用户反应微信输入框右侧功能按钮里的二级菜单中出现了两个神秘的按钮:“服务”和 ...