我建構了傳遞credentialsfile 和身份驗證範圍的服務,然後使用正確的名稱(locations/{location_id}) 呼叫getdailymetricstimeseries,但回傳錯誤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) }
我的client_secret.json檔案是這樣的
{ "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": "" }
我認為問題在於缺少 location_id 引用的主題參數,但我沒有找到可以傳遞它的位置 我已經隱藏了json檔案的個人資訊
問題出在身分驗證上,主題遺失了,所以我這樣處理:
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
}
然後
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()
以上是GetDailyMetricsTimeSeries 上的 golang gmbapi 服務 BusinessProfilePerformance 回傳錯誤 404:未找到要求的實體的詳細內容。更多資訊請關注PHP中文網其他相關文章!