先日、C#からGoogle Blogger API v3.0を使用した。
検索してもサンプルが見当たらなかったので、ブログを書き込むサンプルをメモとして公開しておく。
準備
Google Blogger API v3.0はNuGetからインストールします。
コード
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using Google.Apis.Blogger;
using Google.Apis.Blogger.v3;
using Google.Apis.Blogger.v3.Data;
//...
static void Main(string[] args)
{
// OAuth 認証を行う
UserCredential credential;
using (var stream = new FileStream("client_id.json", FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { BloggerService.Scope.Blogger },
"user", CancellationToken.None);
}
// Bloggerのインスタンスを取得
BloggerService service = new BloggerService(new BaseClientService.Initializer()
{ HttpClientInitializer = credential, ApplicationName = "Blogger Convert" });
// Blogの一覧を取得
var blogList = service.Blogs.ListByUser("self").Execute();
// Blogに新しいエントリを作成する
var newPost = new Post();
newPost.Title = "blog title";
newPost.Content = "blog body text
";
newPost.Published = DateTime.Prase("2016-01-01 12:00");
var updPost = service.Posts.Insert(newPost, blogList.Items[0].Id).Execute();
//...
ちなみにバグがあってブログのラベルを設定することは出来ない。もう随分長いこと放置されているので、修正の見込はないと思っておこう。
画像データをアップロードする機能は見当たらない。おそらくはPicasaと連携しろって事なのだとも思うけど・・・Picasaって2016年5月にサービス終了するんだよな。