正常网页分享到朋友圈不做任何设置的话 微信会自动设置主图片和title作为分享标题。如果想自行设置,可修改jssdk进行设置。具体方法如下:
准备条件:
1,AppID----应用ID
2,AppSecret---应用密钥
3,域名
这两个在微信公众平台->基本配置里可见。
注意:公众号必须是服务号 订阅号不可用哦
参考文献:http://mp.weixin.qq.com/wiki/home/index.html 具体使用过程所遇问题如下:
使用步骤:
1,绑定域名
微信公众平台->公众号设置->功能配置里面设置js接口安全域名。此域名是顶级域名,eg:http://campaign.mioji.com/ 只需输入mioji.com即可
2,引入js文件 http://res.wx.qq.com/open/js/jweixin-1.0.0.js
3,通过设置config接口注入权限验证配置
据开发者文档需求如下:
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 });第一次尝试:js实现
wx.config({
debug: true,
appId: 'wx335239fda95ea29', // 公众号的唯一标识
timestamp: '1450789389', // 生成签名的时间戳
nonceStr: 'ss1200DD467', // 生成签名的随机串
signature: '4067720c9b92b7dba6d65f13342c7febb6c8d464',// 签名
jsApiList: ['onMenuShareTimeline'] // 需要使用的JS接口列表
});
备注:有关签名signature生成:
a:首先生成tocken:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx335239fda95ea29&secret=07274d2729e500793b6691a4a9561cc
b:利用tocken生成ticket:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=XI7aUvykPzyuWLQGsVuJcJ&type=jsapi
c:利用ticket、nonceStr随机串、timestamp时间戳、url生成string:
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value
d:利用生成的string进行sha1生成签名signature
0f9de62fce790f9a083d5c99e95740ceb90c27ed
$timestamp = time();
$nonceStr = 'Wm3WZYTPz0wzccnd';
$ticket = 'sM4AOVdWfPE4DxkXGEs8VOO9lGIrxq5';
$signature = 'jsapi_ticket='.$ticket.'&noncestr='.$nonceStr.'×tamp='.$timestamp.'&url=http://campaign.mioji.com/online/xmas2015';
$signature = sha1($signature);
?>
第三次尝试:
ticket失效时间是两个小时,所以不可以写死ticket,php获取
$timestamp = time();
$nonceStr = 'Wm3WZYTPz0wzccnd';
$ticket = Xmas2015::model()->getTicket();
$signature = 'jsapi_ticket='.$ticket.'&noncestr='.$nonceStr.'×tamp='.$timestamp.'&url=http://campaign.mioji.com/online/xmas2015';
$signature = sha1($signature);
?>
public function getTicket()
{
$token_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx335239fda9e2a&secret=07274d2729e5020793b661a1';
$re = $this->curl(array(
'url' => $token_url,
'timeout' => 120
));
$token_arr = json_decode($re, true);
$token = $token_arr['access_token'];
$ticket_url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$token.'&type=jsapi';
$re = $this->curl(array(
'url' => $ticket_url,
'timeout' => 120
));
$ticket_arr = json_decode($re, true);
$re = $ticket_arr['ticket'];
return $re;
}