获取头条小程序分享二维码

<?php
/**
 * 获取头条小程序分享二维码
 */
function getTtShareQrCode(){
    $code_img = 'share_'.$_POST['id'].'_png';
    $access_token = get_tt_access_token();
    $base_url = 'https://developer.toutiao.com/api/apps/qrcode';
    $path = '';
    $send_info = [
        'access_token'=>$access_token,//服务端 API 调用标识
        'appname'=>'toutiao',//是打开二维码的字节系 app 名称,默认为今日头条,toutiao douyin pipixia huoshan
        'path'=>$path,//小程序/小游戏启动参数,小程序则格式为 encode({path}?{query}),小游戏则格式为 JSON 字符串,默认为空
        'width'=>280,//二维码宽度,单位 px,最小 280px,最大 1280px,默认为 430px
        'line_color'=>null,//二维码线条颜色,默认为黑色 {"r":0,"g":0,"b":0}
        'background'=>null,//二维码背景颜色,默认为透明
        'set_icon'=>false,//是否展示小程序/小游戏 icon,默认不展示
    ];
    $img_buffer = CurlPostJson($base_url,$send_info);//图片 Buffer

    //保存图片$code_img
    $file = fopen($code_img,"w");//创建件准备写入
    fwrite($file,$img_buffer);//写入
    fclose($file);//关闭
}
/**
 * 获取头条access_token
 */
function get_tt_access_token(){
    $data = json_decode(file_get_contents("tt_access_token.json"));
    if(empty($data) || $data->expire_time < time()) {
        $base_url = 'https://developer.toutiao.com/api/apps/token';
        $send_info = [
            'appid'=>C('TT_APP_ID'),//小程序 ID
            'secret'=>C('TT_APP_SECRET'),//小程序的 APP Secret,可以在开发者后台获取
            'grant_type'=>'client_credential',//获取 access_token 时值为 client_credential
        ];
        $base_url = $base_url.'?appid='.$send_info['appid'].'&secret='.$send_info['secret'].'&grant_type='.$send_info['grant_type'];
        $res = CurlGet($base_url);
        $data = json_decode($res,true);
        if($data){
            $data['expire_time'] = time() + $data['expires_in'];//过期时间
            file_put_contents('tt_access_token.json',json_encode($data));
            return $data['access_token'];
        }
    } else {
        return $data->access_token;
    }
}
/**
 * curl Get请求
 * @param  $url
 * @return mixed
 */
function CurlGet($url) {
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_HEADER,0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//跳过ssl检查项
    $output = curl_exec($ch);
    if($output === FALSE ){
        echo "CURL Error:".curl_error($ch);
    }
    curl_close($ch);
    return $output;
}
/**
 * curl POST Json请求
 * @param $url
 * @param $postData
 * @return mixed
 */
function CurlPostJson($url, $postData) {
    $ch = curl_init();//初始化一个cURL会话
    curl_setopt($ch,CURLOPT_URL,$url);//设置请求的URL
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);//true:返回结果,不输出
    curl_setopt($ch, CURLOPT_POST, true);//true:设置为POST方式

    //传送json数据
    $json_data = json_encode($postData);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$json_data);
    curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type:application/json'));

    curl_setopt($ch, CURLINFO_HEADER_OUT, true);//true:追踪句柄的请求字符串
    $output = curl_exec($ch);//执行给定的cURL会话
    if($output === FALSE ){
        echo "CURL Error:".curl_error($ch);
    }
    curl_close($ch);//关闭一个cURL会话
    return $output;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨四点的_LA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值