info(date('H:i') . ' 开始执行'); $this->start(); $this->info(date('H:i') . ' 结束执行'); return 0; } public function start() { $tokenIds = JuxingAdAccount::query() ->where('enable', 1) ->pluck('token_id'); // 更新有效期小于2小时的账户Token $refreshLine = date('Y-m-d H:i:s', strtotime("+2 hour")); $refreshTokenList = JuxingAccountInfo::query() ->whereIn('id', $tokenIds) ->where(function ($query) use ($refreshLine) { $query->where('access_token_expires_at', '<', $refreshLine) ->where('refresh_token_expires_at', '>', date('Y-m-d H:i:s')); }) ->pluck('admin_id', 'refresh_token'); if ($refreshTokenList->isEmpty()) return 0; foreach ($refreshTokenList->all() as $refreshToken => $adminId) { $this->refreshToken($refreshToken, $adminId); } return 0; } public function refreshToken($refreshToken, $adminId) { try { $juxingConf = config('kwai')['juxing']; $pubuse = new PubUse($juxingConf['app_id'], $juxingConf['secret']); $userAuthorize = $pubuse->authorize()->refreshToken([ 'refresh_token' => $refreshToken ]); Log::info('磁力聚星刷新token', [ 'response' => $userAuthorize, 'conf' => $juxingConf, 'refresh_token' => $refreshToken ], 'RefreshJuxingToken'); if (!isset($userAuthorize['code']) || $userAuthorize['code'] !== 0) { Log::error('磁力聚星refreshToken失败', $userAuthorize, 'RefreshJuxingToken'); return false; } $advertiserList = CallbackService::getApprovalList($juxingConf, $userAuthorize); $rst = CallbackService::saveJuxingAccount(['admin_id' => $adminId], $userAuthorize, $advertiserList,2); $msg = $rst ? '磁力聚星refreshToken成功' : '磁力聚星refreshToken失败'; Log::info($msg, $userAuthorize, 'RefreshJuxingToken'); } catch (\Throwable $e) { Log::error('磁力聚星refreshToken失败 '.$e->getMessage(), [ 'param' => [ 'refresh_token' => $refreshToken, 'admin_id' => $adminId ], 'trace' => $e->getTraceAsString() ], 'RefreshJuxingToken'); } return 0; } }