Blogger JSON API: API の使用

このドキュメントでは、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 の承認プロセス(または「フロー」)の詳細は、開発するアプリケーションの種類によって若干異なります。次の一般的なプロセスは、すべての種類のアプリケーションに適用されます。

  1. アプリケーションを作成した場合は、Google に登録します。後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
  2. Google API Console の [サービス] ペインで Blogger JSON API を有効にします。(コンソールに表示されない場合は、この手順をスキップしてください)。
  3. アプリケーションは、ユーザー データにアクセスする必要がある場合、特定のアクセス範囲を Google にリクエストします。
  4. Google は、ユーザーに OAuth ダイアログをユーザーに表示し、アプリケーションによるデータのリクエストを許可するようユーザーに求めます。
  5. ユーザーが承認すると、Google からアプリケーションに短期間有効なアクセス トークンが与えられます。
  6. アプリケーションは、そのアクセス トークンを付けてユーザーデータをリクエストします。
  7. 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 のすべてのオペレーションに適用されるクエリ パラメータは、システム パラメータに記載されています。