API キーを使用して API にアクセスする

このページでは、API キーを使用して、API キーを受け付ける Google Cloud APIs とサービスにアクセスする方法について説明します。

Google Cloud APIs のすべてが API キーによる使用の承認を受け付けるわけではありません。使用するサービスまたは API のドキュメントで、API キーを受け付けるかどうかを確認してください。

API キーの作成と管理(API キーの制限を含む)については、API キーを管理をご覧ください。

Google Maps Platform で API キーを使用する方法の詳細については、Google Maps Platform のドキュメントをご覧ください。API Keys API の詳細については、API Keys API のドキュメントをご覧ください。

REST で API キーを使用する

API キーは、次の形式のクエリ パラメータとして REST API 呼び出しに渡すことができます。API_KEY は、API キーのキー文字列に置き換えます。

たとえば、documents.analyzeEntities に対する Cloud Natural Language API リクエストの API キーを渡すには、次のようにします。

POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY

または、x-goog-api-key ヘッダーを使用してキーを渡すこともできます。このヘッダーは gRPC リクエストとともに使用する必要があります。

curl -X POST \
    -H "X-goog-api-key: API_KEY" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://translation.googleapis.com/language/translate/v2"

クライアント ライブラリで API キーを使用する

API キーのクライアント ライブラリのサポートは言語固有です。

この例では、認証用に API キーをサポートする Cloud Natural Language API を使用し、ライブラリに API キーを提供する方法を示します。

Go

このサンプルを実行するには、Natural Language クライアント ライブラリをインストールする必要があります。

import (
	"context"
	"fmt"
	"io"

	language "cloud.google.com/go/language/apiv1"
	"cloud.google.com/go/language/apiv1/languagepb"
	"google.golang.org/api/option"
)

// authenticateWithAPIKey authenticates with an API key for Google Language
// service.
func authenticateWithAPIKey(w io.Writer, apiKey string) error {
	// apiKey := "api-key-string"

	ctx := context.Background()

	// Initialize the Language Service client and set the API key.
	client, err := language.NewClient(ctx, option.WithAPIKey(apiKey))
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer client.Close()

	text := "Hello, world!"
	// Make a request to analyze the sentiment of the text.
	res, err := client.AnalyzeSentiment(ctx, &languagepb.AnalyzeSentimentRequest{
		Document: &languagepb.Document{
			Source: &languagepb.Document_Content{
				Content: text,
			},
			Type: languagepb.Document_PLAIN_TEXT,
		},
	})
	if err != nil {
		return fmt.Errorf("AnalyzeSentiment: %w", err)
	}

	fmt.Fprintf(w, "Text: %s\n", text)
	fmt.Fprintf(w, "Sentiment score: %v\n", res.DocumentSentiment.Score)
	fmt.Fprintln(w, "Successfully authenticated using the API key.")

	return nil
}

Python

このサンプルを実行するには、Natural Language クライアント ライブラリをインストールする必要があります。


from google.cloud import language_v1


def authenticate_with_api_key(api_key_string: str) -> None:
    """
    Authenticates with an API key for Google Language service.

    TODO(Developer): Replace this variable before running the sample.

    Args:
        api_key_string: The API key to authenticate to the service.
    """

    # Initialize the Language Service client and set the API key
    client = language_v1.LanguageServiceClient(
        client_options={"api_key": api_key_string}
    )

    text = "Hello, world!"
    document = language_v1.Document(
        content=text, type_=language_v1.Document.Type.PLAIN_TEXT
    )

    # Make a request to analyze the sentiment of the text.
    sentiment = client.analyze_sentiment(
        request={"document": document}
    ).document_sentiment

    print(f"Text: {text}")
    print(f"Sentiment: {sentiment.score}, {sentiment.magnitude}")
    print("Successfully authenticated using the API key")

Node.js

このサンプルを実行するには、Natural Language クライアント ライブラリをインストールする必要があります。


const {
  v1: {LanguageServiceClient},
} = require('@google-cloud/language');

/**
 * Authenticates with an API key for Google Language service.
 *
 * @param {string} apiKey An API Key to use
 */
async function authenticateWithAPIKey(apiKey) {
  const language = new LanguageServiceClient({apiKey});

  // Alternatively:
  // const auth = new GoogleAuth({apiKey});
  // const {GoogleAuth} = require('google-auth-library');
  // const language = new LanguageServiceClient({auth});

  const text = 'Hello, world!';

  const [response] = await language.analyzeSentiment({
    document: {
      content: text,
      type: 'PLAIN_TEXT',
    },
  });

  console.log(`Text: ${text}`);
  console.log(
    `Sentiment: ${response.documentSentiment.score}, ${response.documentSentiment.magnitude}`
  );
  console.log('Successfully authenticated using the API key');
}

authenticateWithAPIKey();

アプリケーションで API キーを使用する場合は、保存時と転送時の両方でキーの安全確保に努めてください。API キーが公開されると、アカウントに対して予想外の料金が課される可能性があります。詳細については、API キーの管理に関するベスト プラクティスをご覧ください。

次のステップ