1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- /**
- * 谷歌趋势api
- * @copyright 2021-浙江引擎力营销策划有限公司
- * @author Lc<sunshinecc1@163.com>
- * @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(),
- ]);
- }
- }
- }
|