微信公众号自定义分享内容实现

一、准备阶段

公众号一个,微网站一个。
 

二、绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。
 
三、代码

<?php
//curl获取请求文本内容
function get_curl_contents($url, $method ='GET', $data = array()) {
    if ($method == 'POST') {
        //使用crul模拟
        $ch = curl_init();
        //禁用https
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        //允许请求以文件流的形式返回
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_URL, $url);
        $result = curl_exec($ch); //执行发送
        curl_close($ch);
    }else {
        if (ini_get('allow_fopen_url') == '1') {
            $result = file_get_contents($url);
        }else {
            //使用crul模拟
            $ch = curl_init();
            //允许请求以文件流的形式返回
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            //禁用https
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_URL, $url);
            $result = curl_exec($ch); //执行发送
            curl_close($ch);
        }
    }
    return $result;
}
//获取微信公从号access_token
function wx_get_token() {
    $AppID = '1235464654';//AppID(应用ID)
    $AppSecret = '705641465sdfasdf456465a4sdf';//AppSecret(应用密钥)
    $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$AppID.'&secret='.$AppSecret;
    $res = get_curl_contents($url);
    $res = json_decode($res, true);
    //这里应该把access_token缓存起来,至于要怎么缓存就看各位了,有效期是7200s
    return $res['access_token'];
}
//获取微信公从号ticket
function wx_get_jsapi_ticket() {
    $url = sprintf("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=%s&type=jsapi", wx_get_token());
    $res = get_curl_contents($url);
    $res = json_decode($res, true);
    //这里应该把access_token缓存起来,至于要怎么缓存就看各位了,有效期是7200s
    return $res['ticket'];
}
$wx = array();
//生成签名的时间戳
$wx['timestamp'] = time();
//生成签名的随机串
$wx['noncestr'] = 'Wm3WZYTPz0wzccnW';
//jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。
$wx['jsapi_ticket'] = wx_get_jsapi_ticket();
//分享的地址,注意:这里是指当前网页的URL,不包含#及其后面部分,曾经的我就在这里被坑了,所以小伙伴们要小心了
$wx['url'] = 'http://www.baidu.com';
$string = sprintf("jsapi_ticket=%s&noncestr=%s&timestamp=%s&url=%s", $wx['jsapi_ticket'], $wx['noncestr'], $wx['timestamp'], $wx['url']);
//生成签名
$wx['signature'] = sha1($string);
/*
注意事项
签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。
签名用的url必须是调用JS接口页面的完整URL。
出于安全考虑,开发者必须在服务器端实现签名的逻辑。
*/
?>

四、视图显示

在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js
通过config接口注入权限验证配置

<script>

//通过config接口注入权限验证配置

wx.config({

    debug : false,

    appId : 'AppID',

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

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

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

    jsApiList : ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo']

});

wx.ready(function(){

    var

        s_title = '分享标题',   // 分享标题

        s_link = '分享链接',    // 分享链接

        s_desc = '分享描述',   //分享描述

        s_imgUrl = '分享图片'; // 分享图标

    //朋友圈

    wx.onMenuShareTimeline({

        title: s_title, // 分享标题

        link: s_link, // 分享链接

        imgUrl: s_imgUrl, // 分享图标

        success: function () { },

        cancel: function () { }

    });

    //发送给好友

    wx.onMenuShareAppMessage({

        title: s_title, // 分享标题

        desc: s_desc, // 分享描述

        link: s_link, // 分享链接

        imgUrl: s_imgUrl, // 分享图标

        type: '', // 分享类型,music、video或link,不填默认为link

        dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空

        success: function () {},

        cancel: function () {}

    });

    //QQ好友

    wx.onMenuShareQQ({

        title: s_title, // 分享标题

        desc: s_desc, // 分享描述

        link: s_link, // 分享链接

        imgUrl: s_imgUrl, // 分享图标

        success: function () { },

        cancel: function () { }

    });

    //腾讯微博

    wx.onMenuShareWeibo({

        title: s_title, // 分享标题

        desc: s_desc, // 分享描述

        link: s_link, // 分享链接

        imgUrl: s_imgUrl, // 分享图标

        success: function () { },

        cancel: function () { }

    });

});

</script>

五、大功告成

基本上的流程就是这样了,比较麻烦的一点就是生成签名那一块,注意一点就行了

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索权限
, 接口
, 链接
配置
微信公众号自定义分享、微信公众号自定义菜单、微信自定义分享按钮、微信自定义分享内容、微信自定义分享,以便于您获取更多的相关知识。

时间: 2024-10-09 03:05:30

微信公众号自定义分享内容实现的相关文章

php版微信公众号自定义分享内容实现方法

本文实例讲述了php版微信公众号自定义分享内容实现方法.分享给大家供大家参考,具体如下: 微信公众号号在手机中通过api接口可以实现自定义分享内容了,下面我们来看这个接口的实现步骤. 一.准备阶段 公众号一个,微网站一个. 二.绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名". 备注:登录后可在"开发者中心"查看对应的接口权限. 三.代码 <?php //curl获取请求文本内容 f

微信公众号自定义菜单点击推送消息×

问题描述 微信公众号自定义菜单点击推送消息× 微信公众号完成了自定义菜单怎么点击菜单推送消息?微信公众号完成了自定义菜单怎么点击菜单推送消息? 解决方案 在公众号管理页面是可以为每个二级菜单设置链接的啊 解决方案二: 新建菜单的时候可以指定是链接还是推送哪些信息的. 解决方案三: 菜单是无法在代码里动态生成的,你需要先设置好 而且每次修改,客户端有24小时的缓存,除非重新关注

微信公众号公开分享草榴社区和邀请码 客服:你可以选择报警

微信公众号传播色情网站 留下草榴最新地址和草榴邀请码西部网讯(陕西广播电视台<第一新闻>)随着手机上网的普及,微信这个网络平台 成了很多人生活中不可 缺少的社交工具.最近一段时间,国家开展扫黄打非净网专项行动以后,有观众向我们反映,居然有人利用微信的公众账号,明目张胆的传播色情网站信息.被举报的这个微信公众账号叫做1024上榴人士,关注这个账号以后,记者看到,它在功能介绍一栏写着:分享草榴社区最新地址与草榴邀请码信息.很快,这个公众账号向记者发来一条微信,提示,只要回复数字就可以获得相应的资源

.NET微信公众号开发之创建自定义菜单_javascript技巧

一.前言 开发之前,我们需要阅读官方的接口说明文档,不得不吐槽一下,微信的这个官方文档真的很烂,但是,为了开发我们需要的功能,我们也不得不去看这些文档. 接口文档地址:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html 看了这些个文档,基本意思明白了,就是我们把我们要创建的菜单创建好,post到微信的服务器上面,微信服务器然后给我们一些状态码,从而判断我们的菜单是否创建成功,只是在发送json数据以前我们要做

.NET微信公众号开发之查询自定义菜单_实用技巧

一.前言    前面我们已经创建好了我们的自定义菜单.那么我们现在要如何查询我们自定义的菜单. 原理都是一样的,而且都是相当简单,只是接口地址文档换掉了. 二.开始编码    同样我们首先创建好我的查询页面,在这里我们使用aspx页面 selectMenu.aspx 复制代码 代码如下:         protected void Page_Load(object sender, EventArgs e)         {             var str = GetPage("htt

Python实现微信公众平台自定义菜单实例_python

首先先获取access_token,并保存与全局之中 def token(requset): url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s' % ( Config.AppID, Config.AppSecret) result = urllib2.urlopen(url).read() Config.access_token = json.load

微信公众号的8条运营法则

 随着移动互联网的越来越不可缺少,微信公众号也成为了企业营销和服务的标配,但很多企业也就是开通了公众号,却对没有在公众号的运营花太多的心思,完全达不到预期目标. 近日,微信发布公告又一次升级调整了微信公众平台规则,所有服务号的群发次数已经从原来的每月1次变为了每月4次.另外还对已通过微信认证的服务号开放高级群发接口,开发者可以通过高级群发接口设计更灵活的群发策略.企业公众号这个机会也可以更好利用了. 我们简单总结一下微信运营的基本法则,可以帮助企业更好的利用好微信这个好工具. 1.适应客户的不同

微信公众号运营好的8条运营法则

摘要: 导语:微信公众号已经成为了企业营销和服务的标配,很多企业积极开通了公众号,那如何运营微信,企业如何更好地利用好微信这个工具呢? 随着移动互联网的逐渐深入人心,微信公 导语:微信公众号已经成为了企业营销和服务的标配,很多企业积极开通了公众号,那如何运营微信,企业如何更好地利用好微信这个工具呢? 随着移动互联网的逐渐深入人心,微信公众号已经成为了企业营销和服务的标配,但很多企业仅仅是开通了公众号,却对公众号的运营漫不经心,完全达不到预期目标. 最近微信发布公告再次升级调整了微信公众平台规则,

微信公众号成功运营的8条法则

中介交易 SEO诊断 淘宝客 云主机 技术大厅 导语:微信公众号已经成为了企业营销和服务的标配,很多企业积极开通了公众号,那如何运营微信,企业如何更好地利用好微信这个工具呢? 随着移动互联网的逐渐深入人心,微信公众号已经成为了企业营销和服务的标配,但很多企业仅仅是开通了公众号,却对公众号的运营漫不经心,完全达不到预期目标. 最近微信发布公告再次升级调整了微信公众平台规则,所有服务号的群发次数由原来的每月1次改为每月(自然月)4次.此外,还对已通过微信认证的服务号开放高级群发接口,开发者可以通过高