es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

API de Google PHP devuelve error de argumento inválido.

Estoy tratando de obtener información de ubicación a través de la biblioteca PHP de Google.
Estoy haciendo el ejemplo para -> Recuperar información básica para una lista dada de ubicaciones.
de esta página: https://support.google.com/business/thread/1774669/php-code-example-insights-with-mybusiness-php-v3-2?hl=en

require_once $_SERVER['DOCUMENT_ROOT']."/google/auth_google.php";
require_once $_SERVER['DOCUMENT_ROOT']."/MyBusiness.php";

$mybusinessService = new Google_Service_Mybusiness($client);
$accounts = $mybusinessService->accounts;
$accountsList = $accounts->listAccounts()->getAccounts();
$locationStatistics = [];
//
foreach ($accountsList as $accKey => $account) {

    $locations = $mybusinessService->accounts_locations;
    $locationsList = $locations->listAccountsLocations($account->name)->getLocations();



//
    $firstDay = date("Y-m-d\TH:i:s.000\Z", strtotime(date('Y-m-1')));
    $lastDay = date("Y-m-d\TH:i:s.000\Z", strtotime("today"));

//    // Objetivo final de mi código
    if (empty($locationsList)===false) {
        foreach ($locationsList as $locKey => $location) {
            $reviewLink = $location['metadata']['newReviewUrl'];
            $locationNames =  $location->locationName;

            $reportLocationInsightsRequest = new Google_Service_MyBusiness_ReportLocationInsightsRequest($client);
            $basicRequest = new Google_Service_MyBusiness_BasicMetricsRequest($client);
            $metricRequests = new Google_Service_MyBusiness_MetricRequest($client);
            $metricRequests->setMetric("ALL");
            $basicRequest->setMetricRequests($metricRequests);
            $timeRange = new Google_Service_MyBusiness_TimeRange($client);
            $timeRange->setStartTime($firstDay);
            $timeRange->setEndTime($lastDay);
            $basicRequest->setTimeRange($timeRange);
            $reportLocationInsightsRequest->setBasicRequest($basicRequest);
            $reportLocationInsightsRequest->setLocationNames(array($location->name));
            $reportLocationInsightsResponse = $locations->reportInsights($account->name, $reportLocationInsightsRequest);
            $locationMetrics = $reportLocationInsightsResponse->getLocationMetrics();
            $locationMetricsArray = array();
            $locationMetricsArray['locationMetrics']['locationName'] = array($locationMetrics[0]->getLocationName());
            $locationMetricsArray['locationMetrics']['timeZone'] = array($locationMetrics[0]->getTimeZone());
            $metricValuesArray = array();
            foreach ($locationMetrics[0]->getMetricValues() as $value) {
                $metricValuesItem = array();
                $metricValuesItem['metric'] = $value['metric'];
                $metricValuesItem['totalValue']['timeDimension']['timeRange']['endTime'] = $value['totalValue']['timeDimension']['timeRange']['endTime'];
                $metricValuesItem['totalValue']['timeDimension']['timeRange']['startTime'] = $value['totalValue']['timeDimension']['timeRange']['startTime'];
                $metricValuesItem['totalValue']['metricOption'] = $value['totalValue']['metricOption'];
                $metricValuesItem['totalValue']['value'] = $value['totalValue']['value'];
                $metricValuesArray[] = $metricValuesItem;
            }

            $locationMetricsArray['locationMetrics']['metricValues'] = $metricValuesArray ;
            $locData =array();
            $locID = str_replace('https://search.google.com/local/writereview?placeid=', '', $reviewLink);
            $locData['name'] = $locationNames;
            $locData['reviewLink'] = $reviewLink;
            $locData['locationID'] = $locID;
}
}
}

Pero estoy obteniendo el siguiente error:

PHP Fatal error: Uncaught Google\Service\Exception: {
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"errors": [
{
"message": "Request contains an invalid argument.",
"domain": "global",
"reason": "badRequest"
}
],
"status": "INVALID_ARGUMENT"
}
}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que hay un argumento inválido en la solicitud. Es posible que una de las variables que se están pasando a la API no esté en el formato correcto o contenga datos incorrectos.

    Para solucionar el problema, puedes intentar los siguientes pasos:
    – Revisa la documentación de la API de Google que estás utilizando para asegurarte de que estás utilizando el formato y los tipos de datos correctos para las variables.
    – Verifica que las credenciales de autenticación son correctas y tienen los permisos necesarios para acceder a la API.
    – Imprime las variables que se pasan a la API y compáralas con el formato esperado en la documentación.
    – Revisa si faltan campos o parámetros requeridos en la solicitud.

    Si aún no puedes resolver el problema, es posible que desees comunicarte con el equipo de soporte de la API de Google para obtener ayuda adicional.

Comments are closed.