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

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

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

准备步骤:

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

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

3.公众号取得认证。

不罗嗦,直接上代码:

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

//引入js

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."×tamp=".$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张图片

你可能感兴趣的:(微信公众号)