このドキュメントでは、Blogger API の使用を開始する方法について説明します。
始める前に
Google アカウントを取得する
Google アカウントが設定されていることを確認します。偶発的なデータ損失を防ぐため、開発とテストには別の Google アカウントを使用することをおすすめします。すでにテスト アカウントをお持ちの場合は、準備は完了です。Blogger ユーザー インターフェースにアクセスして、テストデータを設定、編集、表示できます。
Blogger に慣れましょう
Blogger のコンセプトに詳しくない方は、このドキュメントを読んで、コーディングを始める前にユーザー インターフェースで試してみてください。このドキュメントは、読者が Blogger に精通し、ウェブ プログラミングの概念とウェブデータ形式について理解していることを前提としています。
リクエストの承認とアプリケーションの識別について学習する
アプリケーションから限定公開データがリクエストされた場合は、そのデータへのアクセス権を持つ認証済みのユーザーがリクエストを承認する必要があります。
アプリケーションが一般公開データをリクエストした場合、リクエストを承認する必要はありませんが、API キーなどの識別子を付加する必要があります。
リクエストを承認して API キーを使用する方法については、API ドキュメントのリクエストの承認とアプリケーションの識別をご覧ください。
Blogger API の背景
Blogger のコンセプト
Blogger は、次の 5 つの基本概念に基づいて構築されています。
- ブログ: API の基本コンセプト。ブログには投稿とページが含まれます。ブログ名や説明などのブログのメタ情報のコンテナです。
- 投稿: ブログ投稿とは、ブログの投稿者が作成した公開可能なアイテムです。この情報は、著者が今世界に公開したい内容を反映し、タイムリーであるべきです。時間が経つにつれて、ブログ投稿の内容は古くなり、関連性が低くなるとされています。
- コメント: コメントは、ブログ投稿の投稿者以外のユーザーが、投稿者が書いた内容に反応する場所です。レンガからブーケまで、あらゆるものが揃っています。
- ページ: ページは、経歴情報などの静的コンテンツ、またはユーザーへの連絡方法が表示される場所です。これは一般的に、頻繁に変更されない不変の情報です。
- ユーザー: ユーザーとは、作成者、管理者、閲覧者として Blogger を操作するユーザーを指します。一般公開のブログの場合、読者は匿名でもかまいませんが、非公開のブログの場合は、Blogger で読者を特定する必要があります。
Blogger API のデータモデル
リソースとは、固有識別子を持つ個別のデータ エンティティです。Blogger JSON API は、次の 5 種類のリソースで動作します。
- ブログリソース: ブログを表します。
- 投稿リソース: 投稿を表します。各投稿リソースは、blogs リソースの子です。
- コメント リソース: 特定の投稿に対するコメントを表します。各コメント リソースは、投稿リソースの子です。
- ページリソース: 静的ページを表します。各ページリソースはブログリソースの子です。
- ユーザー リソース: 匿名ユーザーを表します。ページ、投稿、コメントの作成者を識別するために使用されます。
![ブログリソースには、ページと投稿の 2 つの子リソースタイプがあります。投稿リソースには、コメント リソースの子が含まれている場合があります。](https://developers-dot-devsite-v2-prod.appspot.com/static/blogger/docs/3.0/blogs-posts-comments.png?authuser=7&hl=ja)
Blogger API のデータモデルは、コレクションと呼ばれるリソースのグループに基づいています。
- ブログ コレクション
- <span="apicollection">ブログ コレクションは、ユーザーがアクセス権を持つすべてのブログで構成されます。ユーザー別にブログを一覧表示したり、ID で 1 つのブログを取得したりできます。</span="apicollection">
- 投稿のコレクション
- 投稿コレクションは、特定のブログリソース内のすべての投稿リソースで構成されます。
- コメントの収集
- コメント コレクションは、特定の投稿リソース内のすべてのコメント リソースで構成されます。
- ページ コレクション
- ページ コレクションは、特定のブログリソース内のすべてのページリソースで構成されます。
- Users コレクション
- ユーザー コレクションは、Blogger のすべてのユーザー リソースで構成されているため、リストに表示することはできません。ユーザーは、ID または識別子
self
を使用して、自身のユーザー リソース(ただし、他のユーザーのリソースではない)を取得できます。
Blogger API のオペレーション
Blogger API では、コレクションやリソースに対してさまざまなメソッドを呼び出すことができます。次の表をご覧ください。
オペレーション | 説明 | REST HTTP マッピング |
---|---|---|
list | コレクション内のすべてのリソースを一覧表示します。 | コレクション URI に対する GET 。 |
get | 特定のリソースを取得します。 | リソース URI に対する GET 。 |
getByUrl | リソースを取得し、URL で検索します。 | GET は、パラメータとして渡された URL に置き換えます。 |
getByPath | パスでリソースを検索して取得します。 | GET は、パラメータとして渡されたパスに置き換えます。 |
listByUser | ユーザーが所有するリソースをリストします。 | ユーザー所有コレクションに対する GET 。 |
search | クエリ パラメータに基づいてリソースを検索する。 | 検索 URL の GET 。パラメータとして渡されたクエリを使用します。 |
insert | コレクション内にリソースを作成します。 | コレクション URI に対する POST 。 |
delete | リソースを削除します。 | リソース URI に対する DELETE 。 |
patch | Patch セマンティクスを使用して、リソースを更新します。 | リソース URI に対する PATCH 。 |
update | リソースを更新します。 | リソース URI に対する PUT 。 |
次の表に、各リソースタイプでサポートされているメソッドを示します。非公開ブログのすべての list オペレーションと get オペレーションには認証が必要です。
リソースの種類 |
サポートされるメソッド |
|||||||||
---|---|---|---|---|---|---|---|---|---|---|
リスト | 取得 | getByUrl | getByPath | listByUser | 検索 | 挿入 | 削除 | パッチ | 更新 | |
ブログ | × | はい | あり | × | あり | × | × | × | × | × |
投稿 | あり | あり | × | あり | × | はい | はい | はい | はい | あり |
コメント | あり | あり | × | × | × | × | × | × | × | × |
ページ | あり | あり | × | × | × | × | × | × | × | × |
ユーザー | × | あり | × | × | × | × | × | × | × | × |
呼び出しスタイル
API を呼び出す方法はいくつかあります。
- 直接または JavaScript から REST を使用する(サーバーサイドのコード不要)
- クライアント ライブラリを使用する。
REST
REST は、データをリクエストして変更するための便利で一貫したアプローチを提供するソフトウェア アーキテクチャのスタイルです。
REST という用語は「Representational State Transfer」の省略形です。Google API のコンテキストでは、HTTP 動詞を使用して、Google が保存しているデータ表現を取得および変更することを表しています。
RESTful システムでは、リソースはデータストアに保存されており、クライアントはサーバーが特定のアクション(リソースの作成、取得、更新、削除など)を実行するようにリクエストを送信します。サーバーはそのアクションを実行し、多くの場合、指定されたリソースの表現形式でレスポンスを送信します。
Google の RESTful API では、クライアントは POST
、GET
、PUT
、DELETE
などの HTTP 動詞を使用してアクションを指定します。次の形式のグローバルに一意な URI でリソースを指定します。
https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters
すべての API リソースは HTTP でアクセス可能な一意の URI を持っているため、REST はデータ キャッシュを有効にし、ウェブの分散インフラストラクチャで動作するように最適化されています。
HTTP 1.1 標準のドキュメントのメソッド定義をご覧ください。GET
、POST
、PUT
、DELETE
の仕様が記載されています。
Blogger API の REST
Blogger API のオペレーションで説明されているように、サポートされている Blogger オペレーションは REST の HTTP 動詞に直接マッピングされています。
Blogger API の URI の具体的な形式は次のとおりです。
https://www.googleapis.com/blogger/v3/users/userId https://www.googleapis.com/blogger/v3/users/self https://www.googleapis.com/blogger/v3/users/userId/blogs https://www.googleapis.com/blogger/v3/users/self/blogs https://www.googleapis.com/blogger/v3/blogs/blogId https://www.googleapis.com/blogger/v3/blogs/byurl https://www.googleapis.com/blogger/v3/blogs/blogId/posts https://www.googleapis.com/blogger/v3/blogs/blogId/posts/bypath https://www.googleapis.com/blogger/v3/blogs/blogId/posts/search https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments/commentId https://www.googleapis.com/blogger/v3/blogs/blogId/pages https://www.googleapis.com/blogger/v3/blogs/blogId/pages/pageId
使用された URI と API でサポートされている各オペレーションの結果の詳細については、Blogger API リファレンス ドキュメントをご覧ください。
例
認証されたユーザーがアクセスできるブログを一覧表示します。
GET https://www.googleapis.com/blogger/v3/users/self/blogs?key=YOUR-API-KEY
ブログ ID 3213900 の code.blogger.com ブログの投稿を取得します。
GET https://www.googleapis.com/blogger/v3/blogs/3213900?key=YOUR-API-KEY
JavaScript からの REST
callback
クエリ パラメータを使用してコールバック関数を指定することで、JavaScript から Blogger API を呼び出すことができます。ブラウザがスクリプトを読み込むと、コールバック関数が実行され、コールバック関数にレスポンスが返されます。この方法により、サーバー側のコードを必要とせずに、Blogger のデータを表示する高機能なアプリケーションを作成できます。
次の例では、YOUR-API-KEY を API キーに置き換えてから、code.blogger.com ブログから投稿を取得します。
<html> <head> <title>Blogger API Example</title> </head> <body> <div id="content"></div> <script> function handleResponse(response) { document.getElementById("content").innerHTML += "<h1>" + response.title + "</h1>" + response.content; } </script> <script src="https://www.googleapis.com/blogger/v3/blogs/3213900/posts/8398240586497962757?callback=handleResponse&key=YOUR-API-KEY"></script> </body> </html>
データ形式
JSON
JSON(JavaScript Object Notation)は言語に依存しない一般的なデータ フォーマットで、任意のデータ構造を単純なテキスト形式で表すことができます。詳しくは json.org をご覧ください。