執行程式碼範例

Google APIs Explorer 會動態產生程式碼範例。這些程式碼範例可供複製並在本機執行。如要查看範例,請點選 APIs Explorer 側邊面板中的「全螢幕」圖示 。下圖顯示展開的全螢幕 API Explorer:

Google Books API 的全螢幕 APIs Explorer 面板
圖 2:Google 圖書 API 的 APIs Explorer 全螢幕面板。

根據預設,APIs Explorer 會顯示如何使用 cURL 執行要求。部分 API 也可能會顯示其他語言的範例,例如 JavaScript、Java 和 Python。

在本機執行程式碼範例

下列分頁說明執行程式碼範例的必要條件和步驟。 如要執行程式碼範例,您必須產生並使用自己的授權憑證。如要瞭解如何建立專案及產生憑證,請參閱特定 Google API 的說明文件。

視方法存取的資料類型 (公開或私密) 而定,憑證可以是下列其中一種:

  • 如果是公開資料,憑證就是 API 金鑰。
  • 如果是私人資料,憑證可以是包含 OAuth 2.0 用戶端 ID 和用戶端密鑰的 client_secret.json 檔案,也可以是 OAuth 2.0 存取權杖。

cURL

設定

  1. 請按照 API 說明文件中的操作說明,為應用程式建立或選取專案,然後啟用 API。
  2. 在 Cloud 控制台中建立 API 金鑰。
  3. 在 Cloud 控制台中,為網頁應用程式建立 OAuth 用戶端 ID 憑證,並使用 https://developers.google.com/oauthplayground 做為重新導向 URI。
  4. 在 OAuth 2.0 Playground 中,按一下「OAuth 2.0 設定」圖示
  5. 勾選「使用自己的憑證」
  6. 輸入步驟 3 中產生的用戶端 ID 和用戶端密鑰。
  7. 在範圍欄位中,輸入要搭配方法使用的範圍,然後按一下「授權 API」
  8. (選用) 如果系統顯示登入畫面,請選取要使用的帳戶。
  9. (選用) 如果出現授權畫面,請按一下「接受」
  10. 這時請按一下「Exchange authorization code for tokens」。系統會傳回權杖。
  11. 在 cURL 程式碼範例中,將 [YOUR_API_KEY] 替換為步驟 2 中產生的 API 金鑰:'https://www.googleapis.com/drive/v3/files?key=[YOUR_API_KEY]' \
  12. 在 cURL 程式碼範例中,將 [YOUR_ACCESS_TOKEN] 換成步驟 10 中產生的存取權杖:--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \

執行程式碼範例

在指令列中執行 cURL 指令。指令應類似於下列內容:

curl \
'https://www.googleapis.com/drive/v3/files?key=AIzaSyBiKcaoXmVApwnT24hitQG_dwjGvAj6Ddw' \
--header 'Authorization: Bearer ya29.a0ARrdaM_yQn9MWBpJgKPx880BSnRYIizRYIDz0JN9e66nSliIYpqNXmPsvv2ccfplCTG_U4b1' \
--header 'Accept: application/json' \
--compressed

JavaScript

設定

  1. 請按照 API 說明文件中的操作說明,為應用程式建立或選取專案,然後啟用 API。
  2. 在 Cloud 控制台中建立 API 金鑰。
  3. 在 Cloud 控制台中,為「Web application」(網路應用程式) 建立 OAuth 用戶端 ID 憑證,並設定已授權的 JavaScript 來源,以識別您傳送要求的網址,例如 http://localhost
  4. 將完整程式碼範例複製到網路伺服器可存取的本機檔案,例如 /var/www/html/example.html
  5. 在程式碼範例中找出設定 API 金鑰或用戶端 ID 的行,然後將值替換為步驟 2 和 3 中產生的值:

    • API 金鑰: gapi.client.setApiKey(YOUR_API_KEY);
    • OAuth 2.0 用戶端 ID: gapi.client.init({ 'clientId': 'YOUR_CLIENT_ID',

執行程式碼範例

  1. 在瀏覽器中開啟檔案,例如 http://localhost/example.html。建議使用具備偵錯控制台的瀏覽器,例如 Google Chrome。
  2. (選用) 如果系統顯示登入畫面,請選取要使用的帳戶。
  3. (選用) 如果出現授權畫面,請按一下「接受」。偵錯控制台應會將方法回應顯示為 JSON 物件。

Java

必要條件

  • Java 1.7 以上版本。
  • Gradle 7 以上版本。

設定

  1. 請按照 API 說明文件中的操作說明,為應用程式建立或選取專案,然後啟用 API。
  2. 視方法存取的資料類型而定,建立 API 金鑰 (公開資料) 或 OAuth 2.0 用戶端 ID (私人資料)。
  3. 將應用程式類型設為「電腦版應用程式」
  4. 如果您已建立 OAuth 2.0 用戶端 ID,請下載包含 OAuth 2.0 憑證的 JSON 檔案。這個檔案的名稱類似於 client_secret_CLIENTID.json,其中 CLIENTID 是專案的用戶端 ID。
  5. 在工作目錄中執行下列指令,建立新的專案結構:

    $ gradle init --type basic
    $ mkdir -p src/main/java src/main/resources
    
  6. 如果您在步驟 2 中建立了 OAuth 2.0 用戶端 ID,請將下載的 JSON 檔案重新命名為 client_secret.json

  7. 將重新命名的檔案儲存在步驟 5 建立的 src/main/resources 目錄中。

  8. 在工作目錄中開啟 build.gradle 檔案,並將內容替換為下列程式碼:

    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'ApiExample'
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
    version = '1.0'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile 'com.google.api-client:google-api-client:1.23.0'
        compile 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
        API_SPECIFIC_DEPENDENCY
    }
    
  9. build.gradle 檔案中,將 API_SPECIFIC_DEPENDENCY 這一行替換為編譯所呼叫 API 程式碼的指令。以下是 YouTube Analytics API 的範例:

    compile 'com.google.apis:google-api-services-youtubeAnalytics:v2-rev16-1.23.0'
    

    指令會遵循下列範本:

    compile 'com.google.apis:google-api-services-API_NAME:API_VERSION-   revREVISION-CL_VERSION'
    

其中:

  • API_NAME 是 GitHub 上列出的 API 名稱。如要找出名稱,請在「支援的 Google API」頁面中,按一下 API 旁邊的版本連結。版本連結會導向 GitHub。API 名稱位於頁面正上方,前面會加上 googleapis/google-apis-services-。舉例來說,如果是 Drive API 的 v3,API_NAMEdrive
  • API_VERSION 是「支援的 Google API」頁面上,API 名稱下方列出的 API 版本。
  • REVISION 是 API 的 JavaDoc 參考資料中列出的修訂版本號碼。如需 JavaDoc 參考資料,請前往 https://googleapis.dev/java/google-api-services-API_NAME/latest/index.html
  • CL_VERSION 是用戶端程式庫版本。這個值也會顯示在 JavaDoc 參照中。
  • 從工作目錄中,將 APIs Explorer 的程式碼範例複製到 src/main/java/ApiExample.java。(每個範例中的類別名稱都是 ApiExample,因此您不需要修改 build.gradle 檔案即可執行不同範例。

執行程式碼範例

使用下列指令執行範例:

  gradle -q run

範例應會執行 API 要求,並將回應列印至 STDOUT。您也可以檢查呼叫的服務,瞭解寫入資料的要求所造成的影響。

Node.js

必要條件

  • Node.js
  • 適用於 Node.js 的 Google API 用戶端程式庫:

    • 如果先前未安裝用戶端程式庫,請執行下列指令:
    npm install googleapis --save
    
    • 如果您先前已安裝用戶端程式庫,建議更新程式庫,確保您擁有最新類別,如要更新用戶端程式庫,請執行下列指令:
    npm update googleapis --save
    

設定

  1. 請按照 API 說明文件中的操作說明,為應用程式建立或選取專案,然後啟用 API。
  2. 視方法存取的資料類型而定,建立 API 金鑰 (公開資料) 或 OAuth 2.0 用戶端 ID (私人資料)。
  3. 將應用程式類型設為「電腦版應用程式」
  4. 如果您已建立 OAuth 2.0 用戶端 ID,請下載包含 OAuth 2.0 憑證的 JSON 檔案。這個檔案的名稱類似於 client_secret_CLIENTID.json,其中 CLIENTID 是專案的用戶端 ID。
  5. 將程式碼範例複製到本機檔案,並修改範例,正確識別 API 金鑰或 Secrets 檔案。在範例中,API 金鑰值為 YOUR_API_KEY,Secrets 檔案位置為 YOUR_CLIENT_SECRET_FILE.json

執行程式碼範例

使用下列指令執行範例:

  node sample.js

大多數範例都會將 API 回應 (或其他內容) 列印到 STDOUT

PHP

必要條件

  • PHP 5.4 以上版本,並具備指令列介面 (CLI) 和 JSON 擴充功能。
  • Composer 依附元件管理工具已在全域安裝。
  • PHP 適用的 Google API 用戶端程式庫:

    • 如果先前未安裝用戶端程式庫,請執行下列指令:

      composer require google/apiclient:^2.0
      
    • 如果您先前已安裝用戶端程式庫,建議更新程式庫,確保您測試的程式庫類別是最新版本。如要更新用戶端程式庫,請執行下列指令:

      composer update google/apiclient --with-dependencies
      

執行程式碼範例

使用下列指令執行範例:

  php sample.php

大多數範例都會將 API 回應 (或其他內容) 列印到 STDOUT

Python

必要條件

  • Python 2.7 或 Python 3.5 以上版本
  • pip 套件管理工具
  • 適用於 Python 的 Google API 用戶端程式庫:

    pip install --upgrade google-api-python-client
    
  • 使用者授權的 google-auth-oauthlibgoogle-auth-httplib2 程式庫:

    pip install --upgrade google-auth-oauthlib google-auth-httplib2
    

設定

  1. 請按照 API 說明文件中的操作說明,為應用程式建立或選取專案,然後啟用 API。
  2. 視方法存取的資料類型而定,建立 API 金鑰 (公開資料) 或 OAuth 2.0 用戶端 ID (私人資料)。
  3. 將應用程式類型設為「電腦版應用程式」
  4. 如果您已建立 OAuth 2.0 用戶端 ID,請下載包含 OAuth 2.0 憑證的 JSON 檔案。這個檔案的名稱類似於 client_secret_CLIENTID.json,其中 CLIENTID 是專案的用戶端 ID。
  5. 將程式碼範例複製到本機檔案,並修改範例,正確識別 API 金鑰或 Secrets 檔案。在範例中,API 金鑰值為 YOUR_API_KEY,Secrets 檔案位置為 YOUR_CLIENT_SECRET_FILE.json

執行程式碼範例

使用下列指令執行範例:

  python sample.py

大多數範例都會將 API 回應 (或其他內容) 列印到 STDOUT

Ruby

必要條件

  • Ruby 2.0 以上版本
  • Ruby 適用的 Google API 用戶端程式庫:

    gem install google-api-client`
    

設定

  1. 請按照 API 說明文件中的操作說明,為應用程式建立或選取專案,然後啟用 API。
  2. 視方法存取的資料類型而定,建立 API 金鑰 (公開資料) 或 OAuth 2.0 用戶端 ID (私人資料)。
  3. 將應用程式類型設為「電腦版應用程式」
  4. 如果您已建立 OAuth 2.0 用戶端 ID,請下載包含 OAuth 2.0 憑證的 JSON 檔案。這個檔案的名稱類似於 client_secret_CLIENTID.json,其中 CLIENTID 是專案的用戶端 ID。
  5. 將程式碼範例複製到本機檔案,並修改範例,正確識別 API 金鑰或 Secrets 檔案。在範例中,API 金鑰值為 YOUR_API_KEY,Secrets 檔案位置為 YOUR_CLIENT_SECRET_FILE.json

執行程式碼範例

使用下列指令執行範例:

  ruby sample.rb

大多數範例都會將 API 回應 (或其他內容) 列印到 STDOUT

排解範例問題

未顯示授權對話方塊

APIs Explorer 會使用彈出式視窗授予私人資料的存取權。如果瀏覽器封鎖彈出式視窗,系統就不會顯示這個視窗,您也無法授予存取權。

如果在授權畫面中按一下「允許」後沒有任何反應,請嘗試變更瀏覽器的彈出式視窗設定,啟用彈出式視窗。

收到 401 或 403 錯誤

如果在測試範例時收到 401 或 403 錯誤,可能是下列其中一項發生問題:

  • 專案未啟用 API。請參閱 API 的操作說明,瞭解如何建立專案及啟用 API。
  • 您使用的授權類型有誤 (使用 API 金鑰而非 OAuth 2.0)。
  • 您使用 OAuth 2.0,但範圍過於狹窄。
  • 設定 API 金鑰時,請一併設定限制,防止未經授權使用您的憑證。不過,該要求不符合這些限制。詳情請參閱「使用 API 金鑰限制」。

收到有關複合型內容的警告

如果您使用 Google Cloud Endpoints,並在開發伺服器中執行端點,瀏覽器可能會顯示混合內容警告。發生這項警告的原因是 API Explorer 是透過 HTTPS 載入,但您的 API 在本機執行時,是透過 HTTP 代管。

如要使用 Chrome 隱藏這項警告,請使用特殊標記啟動 Chrome 工作階段,如下所示:

path/to/chrome --user-data-dir=test --unsafely-treat-insecure-origin-as-secure=http://localhost:port

例如:

/usr/bin/google-chrome-stable --user-data-dir=test --unsafely-treat-insecure-origin-as-secure=http://localhost:8080

您只應基於本機測試目的隱藏這則警告。

僅限 JavaScript:未定義 gapi

如果 JavaScript 程式碼在載入 Google API Client Library for JavaScript 前嘗試呼叫該程式庫,就會發生「gapi is not defined」錯誤。請確保在用戶端程式庫載入完成前,不會呼叫參照 gapi 變數的程式碼。