【iOS/iPadOSショートカット】メール受信オートメーションで本文が取れない?X自動投稿に挑戦して分かった限界と回避策

iOS/iPadOSのショートカット(オートメーション:メール受信)で、ブログ更新をXに完全自動投稿したかった話です。
結論から言うと、完全自動はできませんでした。ただ、僕の環境では ①メール受信で起動 → ②ChatGPTで最新記事の「タイトル+URL」を2行取得 → ③余計な oai_citation を削る → ④投稿画面に2行を入れる まではできました。
この記事では、どこで詰まったか/どう回避したか/最後に残る制約を順番にまとめます。

冬の室内でベージュのニットを着た日本人女性が、iPadに表示したiOSショートカットのワークフロー画面(メール受信→テキスト分割→タイトル・URL抽出の流れを連想させるUI)を手に持ち、やさしく微笑んでいる。

ブログを更新したら、X(旧Twitter)にもすぐ流したい。僕が欲しかったのは、いわゆる“公開連動”です。

やりたかったのは、ざっくりこの流れです。

  • 件名に「【公開】」が入ったメールを受信したらオートメーション起動
  • (理想)メール本文から タイトル/URL を取り出す
  • そのまま 「タイトル↵URL」 の2行でXに投稿する

※ただし、僕の環境では ②ができなかったのが今回の出発点でした。

結論:完全自動投稿はできなかった。でも「投稿画面に2行を入れる」まではできた

ショートカットのオートメーション画面。ChatGPT、テキスト分割、リスト取得、X投稿などのアクションが上から順に並んでいる。
全体の流れは「メール受信で起動 → ChatGPT → 分割と整形 → X投稿画面」です。

すべてiPad Air(第4世代)でやりました。

最初に結論を言うと、僕の今回の目標だった完全自動でXに投稿は失敗です。ただ、途中までの成果はあって、

  • ChatGPTにサイトを見に行ってもらい、最新記事の タイトル+URL(2行) を返してもらう
  • URL行に混ざる oai_citation:... (余計なメタ情報)をショートカット側で削る
  • Xの投稿画面に「タイトル改行URL」を入れた状態まで持っていく

ここまでは到達しました。

そのうえで、どこで詰まったのか、どうやって回避したのかを順番に書きます。

ショートカットで「メール受信 → X 自動投稿」をやりたかった

オートメーション メール受信をトリガーにする

ショートカットのオートメーション設定画面。トリガーが「メールを受信」で、件名に【公開】を含む条件が設定されている。
件名「【公開】ブログ記事更新(とりこのすすめ)」のメールを“起動スイッチ”にしてオートメーションを動かします。

トリガーはシンプルです。

  • トリガー:メール受信
  • 条件:件名に 【公開】ブログ記事更新(とりこのすすめ) を含む
  • 受信したらオートメーションを起動

ここまではショートカット側で作れます。

ちなみに話が前後しますが、「Better Notifications for WP」プラグインでブログ更新時にメールを送るようにしています。

メール本文が取れない…

「入力からテキストを取得」しかなく、本文が取れない

ショートカットの実行結果表示(クイックルック)で「項目がない」など、メール本文が取得できない状態が表示されている。
僕の環境では、メール本文がショートカット側に渡ってこない感じでした。

次にやりたかったのが、メール本文の2行を取り出すことです。ところが僕の環境だと、ショートカットの入力にメール本文が渡ってきていない感じでした。

  • クイックルック → 「項目なし」
  • 選べるアクションも実質 「入力からテキストを取得」 くらい
  • つまり、本文の2行を抜くルート(A案)が成立しない

ここは正直、「仕様なのか/環境依存なのか」までは断言できません。ただ僕の手元では再現性高めに詰まったので、今回は割り切って メールは“起動スイッチ”として使い、本文は使わない方針に変えました。

回避策:メール本文は捨てて、ChatGPTに“最新記事のタイトル+URL”を取らせる

特定メール受信=「起動スイッチ」と割り切る

メール本文が取れないなら、メールは「起動のためのスイッチ」にします。

  • メール受信したら起動する
  • 本文は使わない
  • ChatGPTにサイトを見に行ってもらい、最新記事のタイトルとURLを返してもらう

この方針に変えたら、かなり前に進みました。

ChatGPTに投げるプロンプトは「テキスト」アクション経由にした(改行ありOK)

ショートカットのアクション画面。「テキスト」アクションに複数行のプロンプトが入り、その出力を「ChatGPTに質問する」アクションに渡している。
プロンプトは「テキスト」アクションに置いて、改行ありのままChatGPTへ渡すのが楽でした。

ここも地味にハマりました。僕の環境では、「ChatGPTに質問する」アクションの入力欄に、改行入りの長文プロンプトをそのまま貼れないみたいです

なので、ひとつ前に 「テキスト」アクションを置き、そこに改行ありプロンプトを入れて、「ChatGPTに質問する」の入力はそのテキスト変数にしました。

この形にすると、プロンプトを読みやすく管理できます。

やっていることはシンプルで、

  1. テキストアクションに、改行ありのプロンプトを貼る
  2. 次の ChatGPTに質問する の入力を「テキスト(変数)」にする

という流れです。これなら、プロンプトは読みやすい形(複数行)にできます。

実際に使ったプロンプト例(改行あり)

(このまま「テキスト」アクションに貼ってOK)

あなたはWebブラウズ可能なアシスタントです。
次のページを開いて、最新の公開ブログ記事を1本だけ特定してください:
https://www.infoatmackers.jp/weblog/

出力ルール:

  • 返答は必ず2行のみ(余計な説明は禁止)
  • 1行目:記事タイトル
  • 2行目:記事URL(httpsで始まる正規のパーマリンク)

注意:

  • PR/固定表示/人気記事があれば除外し、時系列で最新の「通常記事」を選ぶ
  • 取得できない場合は次の2行のみで返す:
    取得失敗
    https://www.infoatmackers.jp/weblog/

問題発生:URL末尾に oai_citation が混ざる

ChatGPTの返答テキストに、記事URLの末尾へ「oai_citation:…」のようなメタ情報が付いている表示。
このoai_citationが、Xに貼ると見た目を崩すので対策が必要でした。

ChatGPTで最新記事の2行取得自体はうまくいきました。ただ、次の壁がありました。

  • URLの末尾に oai_citation:... のようなメタ情報が付いてしまう

oai_citation は、たぶん ChatGPT側の引用メタ情報が混ざったものだと思います(少なくともXに貼る用途では邪魔でした)。

Xに貼ると見た目が悪いし、リンクとしても邪魔です。プロンプトで抑止しても、毎回きれいになるとは限らない感じでした。

そこで、プロンプトで頑張るのではなく、ショートカット側で確実に削る方向に切り替えました。

oai_citation の消し方:URL行をスペースで分割して先頭だけ採用

URLの後ろに“空白+メタ情報”が付くなら、空白で切ればいい

ショートカットのアクション設定画面。URL行を「スペース」で分割し、リストの先頭(インデックス1)だけを取得する処理が表示されている。
URL行を「空白で分割→先頭だけ使う」で、余計なメタ情報を切り落とせました。

僕が採用したのは、かなり単純な方法です。

  1. ChatGPTの返答を改行で分割
  2. 1行目(タイトル)を取り出す
  3. 2行目(URL行)を取り出す(ここに oai_citation が混ざることがある)
  4. URL行をスペース(空白)で分割
  5. 分割した先頭(=純粋なURL)だけを採用する

これで oai_citation:...実質的に切り捨てられました

ショートカットの処理手順(箇条書き)

  • ChatGPTの返答を 「テキストを分割(区切り:改行)」
  • 「リストから項目を取得」
    • インデックス1 → タイトル
    • インデックス2 → URL行
  • 「テキストを分割(区切り:スペース)」(入力:URL行)
  • 「リストから項目を取得」(インデックス1)→ URLだけ
  • 「テキスト」で2行(タイトル改行URL)に整形
  • 「Xに投稿」で投稿画面を開く

結果として、Xの投稿画面に2行がきれいに入った状態までは作れました。

でも「投稿ボタン」は手動だった

X(旧Twitter)の投稿画面。本文欄に記事タイトルとURLが改行で2行表示され、投稿ボタンは未押下の状態。
投稿画面に2行表示までは到達。ただし最後の投稿は手動。

ここが今回の最後の壁です。

  • 投稿画面は開ける
  • テキストも入る
  • でも、投稿ボタンのタップだけは必要

「有料でAPIを使えば完全自動で投稿できるかも」という話はありますが、僕はそこにお金をかけるつもりがないので深追いしませんでした。

ショートカットだけで“完全自動投稿”を狙うと、この手の「最終確認」が残りがち、という印象です。

iPad スリープ中は止まるっぽい

さらに現実的な問題として、iPadのスリープが絡みます

  • iPadがスリープ中は、当然Xは起動しない
  • スリープ明けに勝手にXが開くわけでもない
  • たぶんどこかの段階で処理が止まってる(もしくは保留になってる)っぽい

このへんはOSの制約やアプリ連携の都合が絡みそうで、僕の環境では「スリープ中に完走」は厳しそうでした。

完全な X 自動投稿は失敗。でも“ここまではできた”

結論として、僕の目標だった 「完全自動でXに投稿」はできませんでした。ただ、同じことを狙っている人にとっては、少なくともここまでは再現できると思います。

  • メール受信をトリガーにできた
  • 本文が取れない問題に当たった(→本文は捨てて回避)
  • ChatGPTで最新記事の「タイトル+URL」2行取得はできた
  • oai_citation はショートカット側で削除できた
  • 投稿画面に2行を入れるところまではできた(※最後の投稿タップは手動)

「どこで止まるか」が分かるだけでも、僕としては収穫でした。

参考になったらブログランキングを1回だけ押してもらえると助かります。
(1日1回でOK/匿名のまま応援できます)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP