執行程式碼範例

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

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

根據預設,API 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. 在雲端控制台中,為網頁應用程式建立 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. 在雲端控制台中,為「網頁應用程式」建立 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 參考資料中列出的修訂版本編號。您可以在 https://googleapis.dev/java/google-api-services-API_NAME/latest/index.html 中找到 JavaDoc 參考資料
  • 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 金鑰或用戶端密鑰檔案。在範例中,API 金鑰值為 YOUR_API_KEY,用戶端密鑰檔案位置為 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 金鑰或用戶端密鑰檔案。在範例中,API 金鑰值為 YOUR_API_KEY,用戶端密鑰檔案位置為 YOUR_CLIENT_SECRET_FILE.json

執行程式碼範例

請使用下列指令執行範例:

  python sample.py

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

小茹

必要條件

  • 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 金鑰或用戶端密鑰檔案。在範例中,API 金鑰值為 YOUR_API_KEY,用戶端密鑰檔案位置為 YOUR_CLIENT_SECRET_FILE.json

執行程式碼範例

請使用下列指令執行範例:

  ruby sample.rb

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

排解範例問題

授權對話方塊未顯示

API 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 變數的程式碼。