如何查询 Google My Business API for Insights

问题描述

我创建了一份报告,其中我还想包含“Google 我的商家”帐户的所有见解。

我已经获得批准并且可以毫无问题地访问 GMB API。现在唯一的问题是我拥有完全访问权限,如何成功查询它以便获得洞察信息?我可以访问一个使用 PHP 或 Python 的团队,所以我想看看我应该给他们什么,以便他们可以成功开始查询。有人可以帮忙吗?

解决方法

here 下载 php 客户端库

这是获取位置信息的示例函数

所需参数:

  • locationNames 应作为输入提供
  • startTime 和 endTime 最大差异应为 18 个月 (2020-01-01T15:01:23Z,2021-01-01T15:01:23Z)
   public function getLocationInsights($accountName,$parameters){ 

        // Replace getClientService,with method having accesstoken
        $service = $this->getClientService();
        $insightReqObj = new Google_Service_MyBusiness_ReportLocationInsightsRequest();
        $locationNames = $parameters['locationNames'];

        // Atleast one location mandatory
        if($locationNames && is_array($locationNames) && count($locationNames) <=10){
            $insightReqObj->setLocationNames($locationNames);
        }
        
        $basicReqObj = new Google_Service_MyBusiness_BasicMetricsRequest();
        // datetime range is mandatory
        // TODO :: validate to not allow more than 18 months difference
        $timeRangObj = new Google_Service_MyBusiness_TimeRange();
        $timeRangObj->setStartTime($parameters['startTime']);
        $timeRangObj->setEndTime($parameters['endTime']);

        $metricReqObj = new Google_Service_MyBusiness_MetricRequest();
        $metricReqObj->setMetric('ALL');

        $basicReqObj->setMetricRequests(array($metricReqObj));
        $basicReqObj->setTimeRange($timeRangObj);
        $insightReqObj->setBasicRequest($basicReqObj);
        $allInsights = $service->accounts_locations->reportInsights($accountName,$insightReqObj);
       
        return $allInsights;
    }
,

我使用 java 来做同样的事情。

我的是这样的:

ReportLocationInsightsRequest content = new ReportLocationInsightsRequest();
    content.setFactory(JSON_FACTORY);
    BasicMetricsRequest basicRequest = new BasicMetricsRequest();
content.setLocationNames("your locationName as a list");
List<MetricRequest> metricRequests= new ArrayList<MetricRequest>();
    MetricRequest metricR=new MetricRequest();
    String metric="ALL";
    metricR.setMetric(metric);
    metricRequests.add(metricR);
    TimeRange timeRange =new TimeRange();
    timeRange.setStartTime("Desired startTime");
    timeRange.setEndTime("Desired endTime");
    basicRequest.setTimeRange(timeRange );
    content.setBasicRequest(basicRequest );
    try {
        MyBusiness.Accounts.Locations.ReportInsights locationReportInsight= 
                mybusiness.accounts().locations().reportInsights(accountName,content);
        ReportLocationInsightsResponse response= locationReportInsight.execute();
        System.out.println("response is = "+ response.toPrettyString());
}catch(Exception e) {
System.out.println(e);
}