Blogger JSON API: API の使用

重要: JSON API v2.0 のサポートは 2024 年 9 月 30 日に終了します。機能を引き続き利用するには、v2.0 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 キーまたは 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 コンソールの [Services] ペインで Blogger JSON API を有効にします(コンソールに表示されない場合は、この手順をスキップしてください)。
  3. アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
  4. Google は、ユーザーに OAuth ダイアログを表示して、アプリケーションによる一部のデータのリクエストを承認するよう求めます。
  5. ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
  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 へのリクエストには、ID(API キーまたは認証トークン)を含める必要があります。

API キーを取得するには、API Console にアクセスします。[サービス] ペインで [api_name] を有効にします。利用規約が表示されたら、内容を読んで同意します。

次に、[API アクセス] ペインに移動します。API キーは、このペインの下部に [Simple API Access] というタイトルのセクションに表示されます。

API キーを作成すると、アプリケーションですべてのリクエスト URL にクエリ パラメータ key=yourAPIKey を追加できます。

API キーは URL に埋め込んでも安全です。エンコーディングの必要はありません。

ブログの使用

ブログの取得

特定のブログリソースの情報を取得するには、HTTP GET リクエストをブログの URI に送信します。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": ""
  }
}

ユーザーのブログの取得

ユーザーのブログのリストを取得するには、HTTP GET リクエストをブログ コレクション URI に送信します。

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": ""
      }
    }
  ]
}

投稿の取り扱い

ブログからの投稿の取得

特定のブログの投稿のリストを取得するには、投稿コレクション URI に GET リクエストを送信します。投稿コレクションの 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
    }
  ]
}

特定の投稿を取得する

ブログから特定の投稿を取得するには、投稿リソース URI に GET リクエストを送信します。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"
  }
}

コメントの取り扱い

投稿のコメントの取得

投稿のコメントのリストを取得するには、コメント コレクション URI に GET リクエストを送信します。コメント コレクションの 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
    }
  ]
}

特定のコメントの取得

投稿から特定のコメントを取得するには、コメント リソース URI に GET リクエストを送信します。コメント リソースの 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"
    }
  }
}

ページの操作

ブログのページの取得

ブログのページのリストを取得するには、ページ コレクション URI に GET リクエストを送信します。ページ コレクションの 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"
        }
      }
    }
  ]
}

特定のページの取得

ブログから特定のページを取得するには、Pages リソース URI に GET リクエストを送信します。Pages リソースの 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 リソース 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 のすべてのオペレーションに適用されるクエリ パラメータは、システム パラメータに記載されています。