* @since 2021-08-23 */ namespace App\Http\Controllers\Wap\GoogleTrendsApi; use App\Http\Controllers\Controller; use Google\GTrends; use Illuminate\Http\Request; class GoogleTrendsApiController extends Controller { public function getKeyWordResult(Request $request) { try { $gt = new GTrends([ 'hl' => 'zh-CN', 'tz' => -480, # last hour 'geo' => '', ]); $keyWold = $request->input('keyWold'); if (empty($keyWold)) { return response()->json([ 'status' => 500, 'message' => 'error', 'data' => [], ]); } $relatedInformation = $gt->getRelatedSearchQueries([$keyWold]); $relatedInformation = $relatedInformation[$keyWold]['default']['rankedList'][0]['rankedKeyword'] ?? []; if (!empty($relatedInformation)) { foreach ($relatedInformation as $key => $value) { if ($key > 4) { unset($relatedInformation[$key]); } } } $cache['relatedInformation'] = $relatedInformation; $relatedTopic = $gt->getRelatedTopics($keyWold); $relatedTopic = $relatedTopic['default']['rankedList'][0]['rankedKeyword'] ?? []; if (!empty($relatedTopic)) { foreach ($relatedTopic as $key => $value) { if ($key > 4) { unset($relatedTopic[$key]); } } } $cache['relatedTopic'] = $relatedTopic; $interestOverTime = $gt->interestOverTime($keyWold, 0, 'today 5-y') ?? []; $dateList = []; if (!empty($interestOverTime)) { foreach ($interestOverTime as $item) { $dateList['date'][] = $item['formattedAxisTime']; $dateList['value'][] = $item['value'][0]; } } $cache['dateList'] = $dateList; $interestByCountry = $gt->interestByCountry([$keyWold], 0, 'today 5-y') ?? []; $countryList = []; if (!empty($interestByCountry)) { foreach ($interestByCountry[$keyWold] as $item) { $countryList[] = [ 'name' => $item['geoName'] ?? '', 'value' => $item['value'][0] ?? 0, ]; } } $cache['countryList'] = $countryList; return response()->json([ 'status' => 200, 'message' => 'success', 'data' => $cache, ]); } catch (\Exception $e) { return response()->json([ 'status' => 500, 'message' => 'error', 'data' => $e->getMessage(), ]); } } }