Google.GData.Clientを参照する。
using Google.GData.Client;以下がサンプルコード。
schemeに"http://www.blogger.com/atom/ns#" を指定するのが重要なポイントになります。
static AtomEntry PostNewEntry(Service service, Uri blogPostUri , string Title, string HtmlContent, DateTime Update , string Name, string Email) { Console.WriteLine("\nPublishing a blog post"); AtomEntry createdEntry = null; if (blogPostUri != null) { // construct the new entry AtomEntry newPost = new AtomEntry(); newPost.Title.Text = Title; //タイトルはダブってもエラーにならない newPost.Published = Update; //日付 newPost.Content = new AtomContent(); newPost.Content.Content = HtmlContent; newPost.Content.Type = "xhtml"; newPost.Authors.Add(new AtomPerson()); newPost.Authors[0].Name = Name; newPost.Authors[0].Email = Email; newPost.Categories.Add(new AtomCategory( "Label1" //term , "http://www.blogger.com/atom/ns#" //scheme )); try { createdEntry = service.Insert(blogPostUri, newPost); if (createdEntry != null) { Console.WriteLine("New blog post created); } } catch { } } return createdEntry; }
Service.Insert()でエラーが発生する場合は、HTMLのタグに不整合がないか確認してみよう。
Service.Insertのエラーについて
Service.Insertで発生するエラーについてはいくつか考えられる。- HTMLのタグに不整合
- 投稿件数オーバー・セキュリティーロック
HTMLのタグに不整合
いつか使えないタグ、というか古い仕様は受け付けない。例えば<br>は×、</ br>出ないとだめ。
その他にも対応しないタグが有るようです。
投稿件数オーバー・セキュリティーロック
1日の投稿件数が、ある一定数(?)を超えると、セキュリティーロックが掛かる。ハッカーが他人のブログをのっとって、ロボットが書き込んでいると判断されるようだ。
手動での各込は出来るが、投稿時にセキュリティ画像に表示される文字の入力が必要になる。
APIではそれが困難である為、エラーが発生する。
セキュリティーロックは翌日になると、解除されるようだが、セキュリティーロックが掛かった日はAPI投稿は中断し、一日に投稿する数を調整する必要がある。
ある一定数(?)というのが分からないが、100投稿もすればセキュリティーロックが掛かるのも当然だと言える。
0 件のコメント:
コメントを投稿