在tp5框架下对接微信分享朋友圈接口,并显示图片和标题。

要使用 微信JS-SDK 进行调用;

准备步骤:

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

2,获取公众号对应的 appid 和 appsecret。

3.公众号取得认证。

不罗嗦,直接上代码:

1,js 代码,在需要分享的页面添加:

<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>//引入js
<script>
window.οnlοad=function(){
var ajaxurl =  '{:url("index/weixin")}';
var urll=location.href.split('#')[0];
$.ajax({
    url:ajaxurl,
    type:"post",
    data:{urll:urll},
    dataType:"json",
    success:function(s){
        wx.config({
            debug: true, //分享成功后可以关闭 false
            appId: s.appid,
            timestamp: s.timestamp,
            nonceStr: s.nonceStr,
            signature: s.signature,
            jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage']
        });
        wx.ready(function(){
            wx.onMenuShareTimeline({
                title: '{$subtitle}', // 分享标题
                link: s.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                imgUrl: "imgurl", // 分享图标 使用绝对路径
                success: function () {

}
            });
            wx.onMenuShareAppMessage({
                title: '{$subtitle}',
                desc: s.url, // 分享描述
                link: s.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                imgUrl: "imgurl", // 分享图标 使用绝对路径
                type: '', // 分享类型,music、video或link,不填默认为link
                dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
                success: function () {
                
                }
            });
        });
        
    },
    error:function(){
        console.log("通信失败");
    }
});
}
/* alert(location.href.split('#')[0]); */ //弹出的url必须与访问地址一致

</script>

2.php代码

public function weixin(){
        $url = input('urll');//获取当前页面的url,接收请求参数
        $root['url'] = $url;
        //获取access_token,并缓存
        $file = RUNTIME_PATH.'/access_token';//缓存文件名access_token
        $appid='xxxxxxxxxxx'; // 填写自己的appid
        $secret='xxxxxxxxxxx'; // 填写自己的appsecret
        $expires = 3600;//缓存时间1个小时
        if(file_exists($file)) {
        $time = filemtime($file);
        if(time() - $time > $expires) {
        $token = null;
        }else {
        $token = file_get_contents($file);
        }
        }else{
        fopen("$file", "w+");
        $token = null;
        }
        if (!$token || strlen($token) < 6) {
        $res = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret."");
        $res = json_decode($res, true);
        $token = $res['access_token'];
        // write('access_token', $token, 3600);
        @file_put_contents($file, $token);
        }

//获取jsapi_ticket,并缓存
        $file1 = RUNTIME_PATH.'/jsapi_ticket';
        if(file_exists($file1)) {
        $time = filemtime($file1);
        if(time() - $time > $expires) {
        $jsapi_ticket = null;
        }else {
        $jsapi_ticket = file_get_contents($file1);
        }
        }else{
        fopen("$file1", "w+");
        $jsapi_ticket = null;
        }
        if (!$jsapi_ticket || strlen($jsapi_ticket) < 6) {
        $ur = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=$token&type=jsapi";
        $res = file_get_contents($ur);
        $res = json_decode($res, true);
        $jsapi_ticket = $res['ticket'];
        @file_put_contents($file1, $jsapi_ticket);
        }

$timestamp = time();//生成签名的时间戳
        $metas = range(0, 9);
        $metas = array_merge($metas, range('A', 'Z'));
        $metas = array_merge($metas, range('a', 'z'));
        $nonceStr = '';
        for ($i=0; $i < 16; $i++) {
        $nonceStr .= $metas[rand(0, count($metas)-1)];//生成签名的随机串
        }

$string1="jsapi_ticket=".$jsapi_ticket."&noncestr=".$nonceStr."&timestamp=".$timestamp."&url=".$url."";
        $signature=sha1($string1);
        $root['appid'] = $appid;
        $root['nonceStr'] = $nonceStr;
        $root['timestamp'] = $timestamp;
        $root['signature'] = $signature;

echo json_encode($root);
    }

可能遇到的问题:

调用一切正常,页面弹出 {errMsg: config:ok} 但是分享出去不是自己定义好的图片和标题,很可能是公众号没认证,查看一下接口权限。

TP5 微信分享朋友圈接口显示自定义图片和标题相关推荐

  1. java 微信分享朋友圈 链接显示图片_java微信公众平台分享朋友圈

    其实分享的方法在微信官网有较为详细的文档说明,现就其中一些比较绕的步骤进行总结,有问题随时交流哈. 首先微信其实已经自带分享到朋友圈,朋友,qq空间等功能,对于开发微信专门提供了一个接口,可以根据需要 ...

  2. java 记录微信转发次数_微信分享朋友圈记录分享次数统计实现

    业余时间研究微信的接口方法.记录下微信分享朋友圈记录分享次数统计实现:1.引入JS文件 2.通过config接口注入权限验证配置 3.通过ready接口处理成功验证 4.通过error接口处理失败验证 ...

  3. 微擎 公众号分享朋友圈不显示缩略图

    微擎 公众号分享朋友圈不显示缩略图 首先在公众号控制器层面获取用户数据 $account_api = WeAccount::create(); $jssdk = $account_api->ge ...

  4. java微信分享朋友圈_java怎么实现微信分享到朋友圈功能

    展开全部 申请应用 AppKey 申请方法:访问友推网站后台,登录后进入应用列表,添加需要集成友推组件的 App,如下636f7079323131333532363134313032313635333 ...

  5. 微信分享朋友圈固定缩略图 php,微信转发或分享朋友圈带缩略图、标题和描述的实现方法...

    自己做博客以来,很早之前分享过文章至朋友圈,那个时候分享过去的文章自动获取页面的比例适合的图片为所缩略图: 后期就很少分享至朋友圈, 近来分享文章给朋友后,发现不带缩略图和简介了,觉得这样很不好看,百 ...

  6. iOS 微信分享 朋友圈

    好多app中 应该会有关分享的功能,比如分享给微信好友朋友圈好友等等 下面我们来整理一下 首先去微信开放平台注册账号(是微信开放平台 不是腾讯开放平台,两者不一样) https://open.weix ...

  7. 如何实现分享链接到微信朋友圈时显示自定义LOGO以及名称介绍

    当下朋友圈很火,很多企业都将微信朋友圈作为品牌传播的途径,经常会发一些精彩的文章到微信朋友圈供大家自发传播,这样的想法很好,对于优质的内容,网友们也乐于转发与朋友们分享,对品牌宣传与推广确实是有好处的 ...

  8. tp5 微信分享朋友或朋友圈

    ThinkPHP5集成JS-SDK实现微信自定义分享功能 最近开发一个项目,需要将链接分享给好友时能够自定义标题.简介和logo,现将ThinkPHP5集成JS-SDK实现微信自定义分享功能的过程整理 ...

  9. php微信转发无法显示标题图片,解决微信公众号分享朋友圈不显示标题图片描述的方法...

    我在微信开发者工具调试都是正确,为什么在真机进行测试,就不会显示分享标题图片描述语呢. 检查分享相关微信接口也是正确,代码如下: wx.ready(function () { wx.onMenuSha ...

  10. thinkphp实现微信分享朋友圈自定义图片和文字

    1.进行微信公众号配置. 需要先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名". 然后将文件MP_verify_ ...

最新文章

  1. codevs 3164 质因数分解
  2. 修改sqoop存储job的默认数据库
  3. 数值分析(2)-多项式插值: 拉格朗日插值法
  4. 关于Java中volatile关键字笔记
  5. 不宜佩带佛像,宜佩带佛号、咒语
  6. 自动化运维之saltstack
  7. 计算机安装微信打不开,微信电脑版打不开怎么办?解决办法如下
  8. python调用子函数_类中的Python调用函数
  9. 【Python机器学习基础教程】(三)
  10. MapWindow GIS二次开发
  11. 关于指针为什么是4个字节大小
  12. Spark数据分析之第4课
  13. 查看MySQL的安装路径
  14. 自制文件传输助手,实现数据安全备忘与跨平台传输(优化)
  15. 新西兰证券交易所遭受一系列 DDoS 攻击
  16. ASCII编码和Unicode编码的区别和联系
  17. 目标检测 YOLOv5 - 卷积层和BN层的融合
  18. matlab 趋势分析,科学网—SEN趋势度分析及其MATLAB实现 - 杨建华的博文
  19. Texpadv1.9.6 (646)专业的 LaTeX的编辑器 支持 M1
  20. C,C++网络编程学习指南

热门文章

  1. python windows下载哪个_初识Python(windows)——下载、安装、使用
  2. 揭秘 Win8 电脑 OEM 分区创建
  3. C语言圆角矩形画法,GDI+ 如何绘制圆角矩形(vc++)
  4. Windows 10 文件名太长 无法删除 复制 重命名
  5. 【洛谷】P2689 东南西北(dfs|贪心)
  6. hive的join,left join,right join,full outer join,left semi join,cross join
  7. Reactjs项目构建
  8. android 怎么判断手机号是移动还是联通
  9. 手动删除文件夹exe病毒并恢复原来文件夹
  10. java论文word_JAVA课程实践报告 基于web的点餐系统毕业设计word格式