読者です 読者をやめる 読者になる 読者になる

YDブログ

(Y)やりたいことしか(D)できない病のブログです。

ポメラDM200からブログに投稿する方法

ポメラ プログラミング

スポンサーリンク


大手ブログ「はてなブログ」「livedoorブログ」「Amebaブログ」「Wordpress」「FC2ブログ」や「小説家になろう」などの長文投稿サイトは記事の投稿用メールアドレス(モブログ)を持っています。

この投稿アドレスが36文字以下ならとっても簡単。 ポメラから投稿用アドレス宛へ送信するだけで、労せずブログ記事を投稿できるはず……なのですが「はてなブログ」の場合、そうは問屋が卸しません。

「ライブドアブログ」「アメーバブログ」は無問題

動作確認していませんが、それぞれ投稿アドレスが短いのでポメラのメニュー「アップロード」から直接送信すれば無問題と思われます。


[ライブドアブログの"メール設定"画面]


[アメブロの"メール投稿の設定"画面]

「はてなブログ」の場合


「はてなブログ」「小説家になろう」の場合、投稿アドレスが長すぎてポメラのメールアドレスに入り切りません(驚愕)。しかも短いアドレスからの自動転送は受けつけられず(震え)。

仕方ないので「Google Apps Script」で解決します。

「Google Apps Script」とは

Microsoft Officeでいう「マクロ機能」のGoogle版が「Google Apps Script」です。OfficeマクロがWordやExcelを自動操作できるのに対して、「Google Apps Script」はGmailやGoogleスプレッドシート、Googleカレンダーといったグーグル系クラウドアプリの操作を自動化できます。

「マクロ」「プログラミング」と聞くと腰が引ける人も多いと思いますが基本コピペでOK。 とはいえ起こりうる問題の対処にはそれなりの知識が必要になります。 軽く試して動かなかったらあきらめるくらいの気持ちでいきましょう(笑)。

ポメラから「はてなブログ」に新規記事を投稿する方法

前提条件として、GmailとGoogleドライブを利用済みであり、ポメラからメール送信(アップロード)できていることが必要です。2種類のコードを用意しました。


Googleドライブを開いて「Google Apps Script」を新規作成します。場所はどこでも構いません。 「Google Apps Script」が見つからなければ「+アプリを追加」から追加します。

var blogPostMailAddress = '投稿用メールアドレス',
    subjectToPost = '[blog]',
    conditionToPost = 'is:unread from:me subject:' + subjectToPost,
    threadsFromPomera = GmailApp.search(conditionToPost, 0, 1);

function postBlogFromPomera() {
  if(threadsFromPomera.length === 0) return;

  var lastThreadFromPomera = threadsFromPomera[0],
      lastMailFromPomera = lastThreadFromPomera.getMessages()[0],
      subjectWithoutLabel = lastMailFromPomera.getSubject().replace(subjectToPost, '');

  MailApp.sendEmail({
    to: blogPostMailAddress,
    subject: subjectWithoutLabel,
    body: lastMailFromPomera.getPlainBody(),
  });
  
  lastThreadFromPomera.markRead().moveToArchive();
  //lastThreadFromPomera.moveToTrash();
}

エディタに上記コードをコピペ。1行目「投稿用メールアドレス」をはてなブログの「詳細設定>下書き投稿メールアドレス」に変更してください


「投稿メールアドレス」にすると本番公開、「下書き投稿メールアドレス」にすると下書き投稿になります。


変更したらツールバーの虫(バグ)のマークを押してエラーが出ないことをチェック。


ポメラからサブジェクトに[blog]を含むメールを自分宛に送って、ツールバーの再生ボタンを押します。


はてなブログに下書き投稿され、投稿が済んだメールは自動で既読になりアーカイブ(受信箱で非表示、検索で表示可能な状態)されます。

問題なく動作していれば、メニュー「リソース>現在のプロジェクトのトリガー(またはすべてのプロジェクトのトリガー)」からスクリプトを毎分実行するよう設定して作業完了です。

更新・修正もしたい場合

上記のメール投稿の方がシンプルでオススメですが、AtomPubという方式で投稿済み記事の上書き修正も技術的に可能なので(笑)やってみました。こちらの方法では設定項目が多くなります。

[免責事項]このAtomPub投稿スクリプトは投稿済み記事を上書きします。この方法を実践して元記事が消えても当方は一切の責任を負いません。

まず同様にスクリプトを新規作成し、長いのでGitHubにアップしたAtomPub投稿スクリプトをコピペします。

usernameにはてなブログのID、rootEndPointに詳細設定のルートエンドポイント、apiKeyに詳細設定のAPIキーを入力します。

正常動作を確認したら毎分実行するように設定してください。同名ファイルのアップロードは上書き投稿されます。

使い方と注意点

メール投稿、AtomPub両方の注意事項

  • 件名にblogを含む自分宛メールが下書きに投稿されます。
  • ポメラからの送信メールは既読アーカイブされます。
  • Gmailに一瞬表示される未読メールを開いてしまうと投稿されません。

AtomPubの注意事項

  • 同名の記事があった場合は場合は上書き更新します。
  • ただし更新できるのは最近の7記事だけ。それより古い記事は更新できません。
  • 公開済み記事を更新すると下書きに戻るので注意が必要です。
  • 見出し文字列の.(ピリオド)をMarkdown形式の#に変換します。
  • 不要な処理は削除したり、変数を好きに変えたりしてください。

まとめ

アップロード後に写真を追加するだけで記事が完成するのですごく便利です。スマホのカメラ性能も良くなっているので、パソコンやカメラを持ち歩く必要はもうなさそう。増田文学の筆もすすみますね。

キングジム様、ポメラ専用ブログサービスの提供おねがいします。 自分が先に作っちゃいますよ!

関連記事

自動校正機能も作ってみました。 matagotch.hatenablog.com