このドキュメントでは、RESTful 呼び出しスタイルを使用して Blogger JSON API の一般的な機能を使用する方法について説明します。
目次
はじめに
このドキュメントは、Blogger の JSON API とやり取りできるアプリケーションを作成するデベロッパーを対象としています。Blogger は、ウェブサイトを作成して継続的な見解を公開できるツールです。
Blogger のコンセプトになじみがない方は、コーディングを開始する前にスタートガイドをご覧ください。
リクエストの承認とアプリケーションの識別
アプリケーションが Blogger JSON API に送信されるリクエストごとに、Google に対してアプリケーションを識別する必要があります。アプリケーションを特定するには、OAuth 2.0 トークン(リクエストの承認も行います)を使用する方法と、アプリケーションの API キーを使用する方法の 2 つがあります。使用するオプションを選択する方法については、以下をご覧ください。
- リクエストを承認(個人のプライベート データのリクエストなど)する必要がある場合、アプリケーションはリクエストとともに OAuth 2.0 トークンを提供する必要があります。API キーを提供することもできますが、その場合は API キーを提供する必要はありません。
- リクエストに承認が不要な場合(一般公開データのリクエストなど)、アプリケーションは API キーまたは OAuth 2.0 トークン、あるいはその両方を提供する最も便利な方法を提供する必要があります。
認証プロトコルについて
アプリケーションは、リクエストの承認に OAuth 2.0 を使用する必要があります。他の認証プロトコルはサポートされていません。
注: 現在、Blogger JSON API では、データアクセス(ハイブリッド)またはドメイン全体の権限の委任(2LO)と同時にログインすることはできません。
OAuth 2.0 を使ったリクエストの承認
非公開のユーザーデータに関する Blogger JSON API へのリクエストは、認証済みのユーザーによって承認される必要があります。
OAuth 2.0 の承認プロセス(または「フロー」)の詳細は、開発するアプリケーションの種類によって若干異なります。次の一般的なプロセスは、すべての種類のアプリケーションに適用されます。
- アプリケーションを作成した場合は、Google に登録します。後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
- Google API Console の [サービス] ペインで Blogger JSON API を有効にします。(コンソールに表示されない場合は、この手順をスキップしてください)。
- アプリケーションは、ユーザー データにアクセスする必要がある場合、特定のアクセス範囲を Google にリクエストします。
- Google は、ユーザーに OAuth ダイアログをユーザーに表示し、アプリケーションによるデータのリクエストを許可するようユーザーに求めます。
- ユーザーが承認すると、Google からアプリケーションに短期間有効なアクセス トークンが与えられます。
- アプリケーションは、そのアクセス トークンを付けてユーザーデータをリクエストします。
- Google によりリクエストとトークンが有効であると判断されると、リクエストされたデータが返されます。
フローによっては、更新トークンを使用して新しいアクセス トークンを取得するなど、追加の手順が必要になる場合もあります。各種アプリケーションのフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。
Blogger JSON API の OAuth 2.0 のスコープ情報は次のとおりです。
https://www.googleapis.com/auth/blogger
OAuth 2.0 を使用してアクセスをリクエストするには、アプリケーションの登録時に Google から提供された情報(クライアント ID やクライアント シークレットなど)の他に、このスコープ情報が必要になります。
ヒント: Google API クライアント ライブラリで一部の承認プロセスを処理することもできます。これらのライブラリは、さまざまなプログラミング言語で利用できます。詳しくは、ライブラリとサンプルのページをご覧ください。
API キーの取得と使用
公開データに対する Blogger JSON API へのリクエストには、識別子(API キーまたは認証トークン)を指定する必要があります。
API キーを取得するには、API コンソールにアクセスしてください。[Service] ペインで [api_name] を有効にします。利用規約が表示されたら、内容を読んで同意します。
次に、[API アクセス] ペインに移動します。API キーは、そのペインの下部、「シンプルな API アクセス」というセクションにあります。
API キーを作成したら、アプリケーションですべてのリクエスト URL にクエリ パラメータ key=yourAPIKey
を追加できます。
API キーは URL に埋め込んでも安全です。エンコーディングの必要はありません。
ブログの使用
ブログを取得する
特定のブログリソースの情報を取得するには、ブログの URI に HTTP GET
リクエストを送信します。Blogs リソースの URI の形式は次のとおりです。
https://www.googleapis.com/blogger/v2/blogs/blogId
リクエスト
次に例を示します。
GET https://www.googleapis.com/blogger/v2/blogs/2399953&key=YOUR-API-KEY
公開ブログを取得するためにユーザーの認証は不要なため、この GET
リクエストで Authorization
HTTP ヘッダーを指定する必要はありません。ただし、そのヘッダーを指定しない場合は、API キーを指定する必要があります。
Blogger にもプライベート ブログがあり、認証が必要です。
レスポンス
リクエストが成功すると、サーバーは HTTP 200 OK
ステータス コードとブログデータを返します。
200 OK { "kind": "blogger#blog", "id": "2399953", "name": "Blogger Buzz", "description": "The Official Buzz from Blogger at Google", "published": "2007-04-23T22:17:29.261Z", "updated": "2011-08-02T06:01:15.941Z", "url": "http://buzz.blogger.com/", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953", "posts": { "totalItems": 494, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts" }, "pages": { "totalItems": 2, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/pages" }, "locale": { "language": "en", "country": "", "variant": "" } }
ユーザーのブログを取得する
ユーザーのブログのリストを取得するには、ブログ コレクション URI に HTTP GET
リクエストを送信します。
https://www.googleapis.com/blogger/v2/users/userId/blogs
リクエスト
ユーザーのブログをリストする GET
リクエストの例を次に示します。
GET https://www.googleapis.com/blogger/v2/users/self/blogs
Authorization: /* OAuth 2.0 token here */
注: 自分のブログを一覧表示するには、ユーザーの認証が必要になるため、GET
リクエストでは Authorization
HTTP ヘッダーを指定する必要があります。
レスポンス
リクエストが成功すると、サーバーは HTTP 200 OK
ステータス コードと、ユーザーのブログリストの完全な表現を返します。
200 OK { "kind": "blogger#blogList", "items": [ { "kind": "blogger#blog", "id": "4967929378133675647", "name": "Brett's Test Blawg", "description": "", "published": "2010-10-06T23:33:31.662Z", "updated": "2011-08-08T06:50:02.005Z", "url": "http://brettmorgan-test-blawg.blogspot.com/", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647", "posts": { "totalItems": 13, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/posts" }, "pages": { "totalItems": 1, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages" }, "locale": { "language": "en", "country": "", "variant": "" } } ] }
投稿の操作
ブログから投稿を取得する
特定のブログから投稿のリストを取得するには、GET
リクエストを投稿コレクション URI に送信します。投稿コレクションの URI の形式は次のとおりです。
https://www.googleapis.com/blogger/v2/blogs/blogId/posts
リクエスト
次に例を示します。
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts&key=YOUR-API-KEY
公開ブログから投稿を取得するためにユーザーの認証は不要なため、この GET
リクエストで Authorization
HTTP ヘッダーを指定する必要はありません。ただし、そのヘッダーを指定しない場合は、API キーを指定する必要があります。
Blogger にもプライベート ブログがあり、認証が必要です。
レスポンス
リクエストが成功すると、サーバーは HTTP 200 OK
ステータス コードと投稿のリストを返します。
200 OK { "kind": "blogger#postList", "nextPageToken": "CgkIChiAkceVjiYQ0b2SAQ", "prevPageToken": "CgkIChDBwrK3mCYQ0b2SAQ", "items": [ { "kind": "blogger#post", "id": "7706273476706534553", "blog": { "id": "2399953" }, "published": "2011-08-01T19:58:00.000Z", "updated": "2011-08-01T19:58:51.947Z", "url": "http://buzz.blogger.com/2011/08/latest-updates-august-1st.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553", "title": "Latest updates, August 1st", "content": "elided for readability", "author": { "id": "401465483996", "displayName": "Brett Wiltshire", "url": "http://www.blogger.com/profile/01430672582309320414", "image": { "url": "http://4.bp.blogspot.com/_YA50adQ-7vQ/S1gfR_6ufpI/AAAAAAAAAAk/1ErJGgRWZDg/S45/brett.png" } }, "replies": { "totalItems": "0", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553/comments" } }, { "kind": "blogger#post", "id": "6069922188027612413", elided for readability } ] }
特定の投稿を取得する
ブログから特定の投稿を取得するには、GET
リクエストを Posts リソース URI に送信します。Posts リソースの URI の形式は次のとおりです。
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId
リクエスト
次に例を示します。
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553&key=YOUR-API-KEY
公開ブログから投稿を取得するためにユーザーの認証は不要なため、この GET
リクエストで Authorization
HTTP ヘッダーを指定する必要はありません。ただし、そのヘッダーを指定しない場合は、API キーを指定する必要があります。
Blogger にもプライベート ブログがあり、認証が必要です。
レスポンス
リクエストが成功すると、HTTP 200 OK
ステータス コードと Post の内容がサーバーから返されます。
200 OK { "kind": "blogger#post", "id": "7706273476706534553", "blog": { "id": "2399953" }, "published": "2011-08-01T19:58:00.000Z", "updated": "2011-08-01T19:58:51.947Z", "url": "http://buzz.blogger.com/2011/08/latest-updates-august-1st.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553", "title": "Latest updates, August 1st", "content": "elided for readability", "author": { "id": "401465483996", "displayName": "Brett Wiltshire", "url": "http://www.blogger.com/profile/01430672582309320414", "image": { "url": "http://4.bp.blogspot.com/_YA50adQ-7vQ/S1gfR_6ufpI/AAAAAAAAAAk/1ErJGgRWZDg/S45/brett.png" } }, "replies": { "totalItems": "0", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553/comments" } }
コメントの操作
投稿のコメントを取得する
GET
リクエストをコメント コレクション URI に送信して、投稿のコメントのリストを取得できます。コメント コレクションの URI の形式は次のとおりです。
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments
リクエスト
次に例を示します。
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments&key=YOUR-API-KEY
公開ブログからコメントを取得するためにユーザーの認証は不要なため、この GET
リクエストで Authorization
HTTP ヘッダーを指定する必要はありません。ただし、そのヘッダーを指定しない場合は、API キーを指定する必要があります。
Blogger にもプライベート ブログがあり、認証が必要です。
レスポンス
リクエストが成功すると、HTTP 200 OK
ステータス コードとコメントのリストがサーバーから返されます。
200 OK { "kind": "blogger#commentList", "nextPageToken": "CgkIFBDwjvDXlyYQ0b2SARj9mZe9n8KsnlQ", "prevPageToken": "CgkIFBisvMGRlyYQ0b2SARj9mZe9n8KsnlQ", "items": [ { "kind": "blogger#comment", "id": "9200761938824362519", "post": { "id": "6069922188027612413" }, "blog": { "id": "2399953" }, "published": "2011-07-28T19:19:57.740Z", "updated": "2011-07-28T21:29:42.015Z", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519", "content": "elided", "author": { "id": "530579030283", "displayName": "elided", "url": "elided", "image": { "url": "elided" } } }, { "kind": "blogger#comment", "id": "400101178920857170", elided for readability } ] }
特定のコメントを取得する
投稿から特定のコメントを取得するには、GET
リクエストを Comments リソース URI に送信します。コメント リソースの URI の形式は次のとおりです。
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments/commentId
リクエスト
次に例を示します。
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519&key=YOUR-API-KEY
公開ブログからコメントを取得するためにユーザーの認証は不要なため、この GET
リクエストで Authorization
HTTP ヘッダーを指定する必要はありません。ただし、そのヘッダーを指定しない場合は、API キーを指定する必要があります。
Blogger にもプライベート ブログがあり、認証が必要です。
レスポンス
リクエストが成功すると、サーバーは HTTP 200 OK
ステータス コードとコメントデータを返します。
200 OK { "kind": "blogger#comment", "id": "9200761938824362519", "post": { "id": "6069922188027612413" }, "blog": { "id": "2399953" }, "published": "2011-07-28T19:19:57.740Z", "updated": "2011-07-28T21:29:42.015Z", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519", "content": "elided", "author": { "id": "530579030283", "displayName": "elided", "url": "elided", "image": { "url": "elided" } } }
ページの操作
ブログのページを取得する
ブログのページのリストを取得するには、GET
リクエストをページ コレクション URI に送信します。ページ コレクションの URI の形式は次のとおりです。
https://www.googleapis.com/blogger/v2/blogs/blogId/pages
リクエスト
次に例を示します。
GET https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages&key=YOUR-API-KEY
公開ブログからページを取得するためにユーザーの認証は不要なため、この GET
リクエストで Authorization
HTTP ヘッダーを指定する必要はありません。ただし、そのヘッダーを指定しない場合は、API キーを指定する必要があります。
Blogger にもプライベート ブログがあり、認証が必要です。
レスポンス
リクエストが成功すると、HTTP 200 OK
ステータス コードとページのリストがサーバーから返されます。
200 OK { "kind": "blogger#pageList", "items": [ { "kind": "blogger#page", "id": "273541696466681878", "blog": { "id": "4967929378133675647" }, "published": "2011-07-14T16:16:00.000Z", "updated": "2011-07-14T16:16:23.602Z", "url": "http://brettmorgan-test-blawg.blogspot.com/p/static-content.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878", "title": "Static Content", "content": "elided for readability", "author": { "id": "901569848744", "displayName": "brett", "url": "http://www.blogger.com/profile/16258312240222542576", "image": { "url": "https://resources.blogblog.com/img/b16-rounded.gif" } } } ] }
特定のページを取得する
ブログから特定のページを取得するには、GET
リクエストをページリソース URI に送信します。ページリソースの URI の形式は次のとおりです。
https://www.googleapis.com/blogger/v2/blogs/blogId/pages/pageId
リクエスト
次に例を示します。
GET https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878&key=YOUR-API-KEY
公開ブログからページを取得するためにユーザーの認証は不要なため、この GET
リクエストで Authorization
HTTP ヘッダーを指定する必要はありません。ただし、そのヘッダーを指定しない場合は、API キーを指定する必要があります。
Blogger にもプライベート ブログがあり、認証が必要です。
レスポンス
リクエストが成功すると、HTTP 200 OK
ステータス コードとページデータが返されます。
200 OK { "kind": "blogger#page", "id": "273541696466681878", "blog": { "id": "4967929378133675647" }, "published": "2011-07-14T16:16:00.000Z", "updated": "2011-07-14T16:16:23.602Z", "url": "http://brettmorgan-test-blawg.blogspot.com/p/static-content.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878", "title": "Static Content", "content": "elided for readability", "author": { "id": "901569848744", "displayName": "brett", "url": "http://www.blogger.com/profile/16258312240222542576", "image": { "url": "https://resources.blogblog.com/img/b16-rounded.gif" } } }
ユーザーとともに作業する
ユーザーを取得する
ユーザーの情報を取得するには、HTTP GET
リクエストを Users Resource URI に送信します。
https://www.googleapis.com/blogger/v2/users/userId
リクエスト
ユーザーのブログをリストする GET
リクエストの例を次に示します。
GET https://www.googleapis.com/blogger/v2/users/self
Authorization: /* OAuth 2.0 token here */
注: ユーザーが自分の情報をリストするには認証を受ける必要があります。したがって、GET
リクエストでは Authorization
HTTP ヘッダーを指定する必要があります。
レスポンス
リクエストが成功すると、HTTP 200 OK
ステータス コードとユーザーブログのリストへのリンクがサーバーから返されます。
200 OK { "kind": "blogger#user", "id": "901569848744", "selfLink": "https://www.googleapis.com/blogger/v2/users/901569848744", "blogs": { "selfLink": "https://www.googleapis.com/blogger/v2/users/901569848744/blogs" } }
標準のクエリ パラメータ
次のクエリ パラメータは、Blogger API のすべてのメソッドとリソースで使用できます。
Blogger API のすべてのオペレーションに適用されるクエリ パラメータは、システム パラメータに記載されています。