首页 > 编程知识 正文

js分享功能源码,javascript源码分享网站

时间:2023-12-28 21:11:13 阅读:329400 作者:XJWL

本文目录一览:

不使用微信开发平台 怎么用js写分享内容

为了净化网络,整顿诱导分享及诱导关注行为,微信于2014年12月30日发布了《微信公众平台关于整顿诱导分享及诱导关注行为的公告》,微信平台开发者发现,原有的微信分享功能不能用了,在iphone手机上,显示为当前页的链接,之前设置的图标和标题等都没有了。虽然在部分android手机上还可以用,但最近微信升级后,分享功能也不正常了。正在苦于微信分享该怎么解决时,微信于2015年1月10日即时发布了开放JS-SDK,为微信网站的开发提供了强大的js功能。这里仅就分享功能的使用进行一些描述。

下面的代码,服务器端使用的是php。

步骤1 生成签名

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

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

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

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

获取令牌。在服务器端完成,代码如下:

function wx_get_token() {

$token = S('access_token');

if (!$token) {

$res = file_get_contents(';appid=' .'你的AppID'.'secret=' .'你的AppSecret');

$res = json_decode($res, true);

$token = $res['access_token'];

// 注意:这里需要将获取到的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}

获取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(";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}

签名,将jsapi_ticket、noncestr、timestamp、分享的url按字母顺序连接起来,进行sha1签名。

noncestr是你设置的任意字符串。

timestamp为时间戳。

$timestamp = time();

$wxnonceStr = "任意字符串";

$wxticket = wx_get_jsapi_ticket();

$wxOri = sprintf("jsapi_ticket=%snoncestr=%stimestamp=%surl=%s",

$wxticket, $wxnonceStr, $timestamp,

'要分享的url(从http开始,如果有参数,包含参数)'

);

$wxSha1 = sha1($wxOri);

如何在网页中通过js代码将内容分享到朋友圈?

布骤一:绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

备注:登录后可在“开发者中心”查看对应的接口权限。

步骤二:引入JS文件

在需要调用JS接口的页面引入如下JS文件

步骤三:通过config接口注入权限验证配置

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。

步骤四:通过ready接口处理成功验证

wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。});

骤五:通过error接口处理失败验证

wx.error(function(res){// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

接口调用说明

所有接口通过wx对象(也可使用jWeixin对象)来调用,参数是一个对象,除了每个接口本身需要传的参数之外,还有以下通用参数:

success:接口调用成功时执行的回调函数。

fail:接口调用失败时执行的回调函数。

complete:接口调用完成时执行的回调函数,无论成功或失败都会执行。

cancel:用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。

trigger: 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。

备注:不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回

以上几个函数都带有一个参数,类型为对象,其中除了每个接口本身返回的数据之外,还有一个通用属性errMsg,其值格式如下:

调用成功时:"xxx:ok" ,其中xxx为调用的接口名

用户取消时:"xxx:cancel",其中xxx为调用的接口名

调用失败时:其值为具体错误信息

基础接口判断当前客户端版本是否支持指定JS接口

wx.checkJsApi({ jsApiList: ['chooseImage'], // 需要检测的JS接口列表,所有JS接口列表见附录2, success: function(res) {// 以键值对的形式返回,可用的api值true,不可用为false // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}  }});

如何在网页中通过js代码将内容分享到朋友圈

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

2

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

3

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

4

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

5

获取令牌。在服务器端完成,代码如下:

function wx_get_token() {

$token = S('access_token');

if (!$token) {

$res = file_get_contents(';appid=' .'你的AppID'.'secret=' .'你的AppSecret');

$res = json_decode($res, true);

$token = $res['access_token'];

// 注意:这里需要将获取到的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}

6

获取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(";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}

7

签名,将jsapi_ticket、noncestr、timestamp、分享的url按字母顺序连接起来,进行sha1签名。

noncestr是你设置的任意字符串。

timestamp为时间戳。

$timestamp = time();

$wxnonceStr = "任意字符串";

$wxticket = wx_get_jsapi_ticket();

$wxOri = sprintf("jsapi_ticket=%snoncestr=%s×tamp=%surl=%s",

$wxticket, $wxnonceStr, $timestamp,

'要分享的url(从http开始,如果有参数,包含参数)'

);

$wxSha1 = sha1($wxOri);

END

步骤2 添加JS代码

生成签名后,就可以使用js代码了。在你的html中,进行如下设置即可。

script type="text/javascript" src=""/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

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

方法步骤:这里说说流程,具体每一步的操作可以参见百度

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

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

3设置JS接口安全域名。填写的是一级域名,不带www和http。最多可以设置三个域名。设置完后点击确定。

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

5获取令牌。在服务器端完成,

6获取jsapi的ticket。jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。

7签名,将jsapi_ticket、noncestr、timestamp、分享的url按字母顺序连接起来,进行sha1签名。

8.添加JS代码,

h5页面通过js实现分享朋友圈,请问怎么实现,或者说能不能实现?

分享功能需要对接接口,不同的平台需要不同的KEY,需要注册为开发者才能获取KEY。

分享按钮不一定非要自己写,可以通过第三方的如百度分享实现。

如果你的H5是通过第三方那种模块式操作的话,里面一般都自带分享功能。

自己写的话,百度分享是最快捷的了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。