Maison >développement back-end >Golang >Le service golang gmbapi BusinessProfilePerformance sur GetDailyMetricsTimeSeries renvoie l'erreur 404 : entité demandée introuvable
J'ai construit le service en transmettant le fichier d'informations d'identification et la portée d'authentification, puis j'ai appelé getdailymetricstimeseries avec le nom correct (locations/{location_id}), mais il a renvoyé une erreur 404.
ctx := context.background() performanceservice, err := businessprofileperformance.newservice(ctx, option.withcredentialsfile("client_secret.json"), option.withscopes(scope)) if err != nil { log.println(err.error()) return } cm := performanceservice.locations.getdailymetricstimeseries("locations/12345...") cm.dailymetric("website_clicks") cm.dailyrangestartdateyear(2022) cm.dailyrangestartdatemonth(6) cm.dailyrangestartdateday(1) cm.dailyrangeenddateyear(2022) cm.dailyrangeenddatemonth(12) cm.dailyrangeenddateday(30) response, err := cm.do() if err != nil { log.println(err.error()) return } if c := response.httpstatuscode; c >= 200 || c <= 299 { j, _ := response.marshaljson() log.println(j) }
Mon fichier client_secret.json ressemble à ceci
{ "type": "", "project_id": "", "private_key_id": "", "private_key": "", "client_email": "", "client_id": "", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "" }
Je pense que le problème vient de la référence location_id du paramètre de sujet manquant, mais je ne trouve pas où je peux la transmettre J'ai caché les informations personnelles du fichier json
Le problème était au niveau de l'authentification, le sujet manquait, donc je l'ai traité comme ceci :
func (a *appcredential) getcredentials(ctx context.context, scope string) (*google.credentials, error) { jsonfile, err := os.open("config/client_secret.json") if err != nil { log.println("error oppening json") return &google.credentials{}, err } defer jsonfile.close() jsondata, _ := ioutil.readall(jsonfile) creds, err := google.credentialsfromjsonwithparams(ctx, jsondata, google.credentialsparams{scopes: []string{scope}, subject: "<a href="https://www.php.cn/link/89fee0513b6668e555959f5dc23238e9" class="__cf_email__" data-cfemail="f796949498829983b7929a969e9bd994989a">[email protected]</a>"}) if err != nil { return &google.credentials{}, err } return creds, nil
}
Alors
ctx := context.Background() creds, err := appCreds.GetCredentials(ctx, "https://www.googleapis.com/auth/business.manage") if err != nil { log.Println(err.Error()) return } performanceService, err := businessprofileperformance.NewService(ctx, option.WithCredentials(creds)) if err != nil { log.Println(err.Error()) return } cm := performanceService.Locations.GetDailyMetricsTimeSeries("locations/{location_id}") response, err := cm.Do()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!