javascript module `gapi` is not work with Google Discovery Document List API value

305 Views Asked by At

I'm currently using the javascript module gapi to develop a service using theGoogle Fit REST API. According to the official documentation, client.init() ingapi need Discovery Docs information is needed.

https://developers.google.com/discovery/v1/reference/apis/list

When I searched the URL of Google Fit on the above site, it was output as https://fitness.googleapis.com/$discovery/rest?version=v1, so I wrote the following code.

gapi.client.init ({{
                apiKey: "********************************",
                clientId: "********************************",
                scope: "https://www.googleapis.com/auth/fitness.activity.read",
                discoveryDocs: ['https://fitness.googleapis.com/$discovery/rest?version=v1'],
            })

However, this code received the following error and ended prematurely.

<! DOCTYPE html>
<html lang = en>
  <meta charset = utf-8>
  <meta name = viewport content = "initial-scale = 1, minimum-scale = 1, width = device-width">
  <title> Error 404 (Not Found) !! 1 </ title>
  <style>
    * {margin: 0; padding: 0} html, code {font: 15px / 22px arial, sans-serif} html {background: #fff; color: # 222; padding: 15px} body {margin: 7% auto 0; max-width: 390px; min-height: 180px; padding: 30px 0 15px} *> body {background: url (//www.google.com/images/errors/robot.png) 100% 5px no-repeat; padding -right: 205px} p {margin: 11px 0 22px; overflow: hidden} ins {color: # 777; text-decoration: none} a img {border: 0} @media screen and (max-width: 772px) {body {background: none; margin-top: 0; max-width: none; padding-right: 0}} # logo {background: url (//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png ) no-repeat; margin-left: -5px} @media only screen and (min-resolution: 192dpi) {# logo {background: url (//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp. png) no-repeat 0% 0% / 100% 100%;-moz-border-image: url (//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}} @media only screen and (-webkit-min-device-pixel-ratio: 2) {#logo {background: url (//www.google.com/images/branding/googlelog) o / 2x / googlelogo_color_150x54dp.png) no-repeat; -webkit-background-size: 100% 100%}} # logo {display: inline-block; height: 54px; width: 150px}
  </ style>
  <a href= / /www.google.com/> <span id = logo aria-label = Google> </ span> </a>
  <p> <b> 404. </ B> <ins> That ’s an error. </ Ins>
  <p> The requested URL <code> / $ discovery / rest </ code> was not found on this server. <ins> That ’s all we know. </ ins>

In the end, I found the code that worked correctly. That is the code below.

gapi.client.init({
                apiKey: "***********************",
                clientId: "***********************",
                scope: "https://www.googleapis.com/auth/fitness.activity.read",
                //discoveryDocs: ['https://fitness.googleapis.com/$discovery/rest?version=v1'],
                discoveryDocs: ['https://www.googleapis.com/discovery/v1/apis/fitness/v1/rest']
            }).

Looking at this, it seems that the value returned by the Google Discovery Document List API is incorrect. Why is this?

MyEnvironment:

  • node v10.19.0
  • gapi version 0.0.3
0

There are 0 best solutions below