php之tp5对接抖音刷新access_token和refresh_token

//用refresh_token刷新用户的access_token    服务器用定时来调用这个方法   (暂未优化)
public function access_token_refresh(){
    //先查询所有授权的用户
    $tiktok_account = db('tiktok_account')->where('auth_status',1)->field('account_id,access_token_time')->select();
    foreach($tiktok_account as $k => $v){
        // month 月
        // day 天
        // hours 小时
        // seconds 秒
        // next 下一个 next month 下一个月
        // last 上一个 last day 上一天
        //现在的时间大于access_token_time时间的14天后更新acccess_token值  因为15天就过期了 但是好像不过期就不会刷新还得用15天
        if(time()>=strtotime("+15 day",$v['access_token_time'])){
            $account = db('tiktok_account')->where('account_id',$v['account_id'])->field('account_id,refresh_token')->find();
            //换取用户 acccess_token
            $get_access_token_url = "https://open.douyin.com/oauth/refresh_token?client_key={$this::$dyClientKey}&grant_type=refresh_token&refresh_token={$account['refresh_token']}";
            $access_token_info = $this->getJson($get_access_token_url);
            $data = [
                'access_token_time'=>time(),
                'access_token'=>$access_token_info['data']['access_token'],
            ];
            db('tiktok_account')->where('account_id',$account['account_id'])->update($data);
        }
    }
}
//用refresh_token刷新用户本身的refresh_token   服务器用定时来调用这个方法   (暂未优化)
public function refresh_token_refresh(){
    $tiktok_account = db('tiktok_account')->where('auth_status',1)->field('account_id,refresh_token_time')->select();
    foreach($tiktok_account as $k => $v){
        // month 月
        // day 天
        // hours 小时
        // seconds 秒
        // next 下一个 next month 下一个月
        // last 上一个 last day 上一天
        //现在的时间大于refresh_token_time时间29天后更新refresh_token值 因为refresh_token一个月到期就不能用了
        if(time()>=strtotime("+29 day",$v['refresh_token_time'])){
            $account = db('tiktok_account')->where('account_id',$v['account_id'])->field('account_id,refresh_token')->find();
            //换取用户 acccess_token
            $get_refresh_token_url = "https://open.douyin.com/oauth/renew_refresh_token?client_key={$this::$dyClientKey}&refresh_token={$account['refresh_token']}";
            $refresh_token_info = $this->getJson($get_refresh_token_url);
            dump($refresh_token_info);
            $data = [
                'refresh_token_time'=>time(),
                'refresh_token'=>$refresh_token_info['data']['refresh_token'],
            ];
            db('tiktok_account')->where('account_id',$account['account_id'])->update($data);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值