リサーチ秘書|追いたい分野のニュースが毎朝“1通”で届く【応用編その2】

リサーチ秘書 アイキャッチ つまずき帳

気になる分野が、ぜんぶ追いきれない——朝のあの渋滞

教育の新しい動き、生成AIの話、お金まわりのニュース——追いたい分野は、いくつもある。どれも大事だと分かっているのに、毎朝そのぜんぶを見に行く時間は、どこにもない。気が向いた朝にいくつかのサイトを巡回して、タブを5つも6つも開いて、結局どれも斜め読みのまま閉じる。そして「今日も追いきれなかった」という小さな後ろめたさだけが、また一日ぶん、静かに積もっていきます。

一つの言葉なら、前回のキーワード→ニュースの回で追えるようになりました。毎朝、登録した言葉のニュースが自動でLINEに届く——あれは、たしかに楽になったんです。でも現実に気になる分野は、一つじゃない。教育のことも、AIのことも、お金のことも、ぜんぶ気になる。一つの言葉なら追えるようになったのに、気になる分野は一つじゃない——その「ぜんぶは追いきれない」が、朝のいちばんの渋滞でした。

これ、ずっとわたし自身のことでした。「ちゃんと情報をおさえておかなきゃ」という気持ちと、「でも今日もできなかった」という小さな後ろめたさ。その二つを、毎日そのまま持ち越していた側です。——もし、いま胸のどこかに「うんうん」とうなずく気持ちがあるなら。この先は、あなたのための回かもしれません。

結果から言います = 毎朝1通、分野ごとに「今日の要点+見出し」が届く

いまは、その「ぜんぶ追わなきゃ」が、ずいぶん軽くなりました。やることは——もう、ほとんどありません。

毎朝きまった時刻になると、メールに1通。中身は、こんな形です。

  • いちばん上に、その朝ぜんぶの見出しから選んだ「今日の要点」が3行。「今朝まず目を通すならこの3つ」が畳んであります。
  • その下に、分野ごとのブロック。「教育DX」「生成AI」「金融リテラシー」というふうに、自分で登録しておいた分野ごとに、今朝の新しい見出しが並びます。
  • 各見出しには、出どころの「種類」を示す色ラベル(公式/報道/専門/個人)と、元記事へのリンク。気になったら、その場でひと押しで開けます。
  • そして末尾には、「これは真偽の判定ではありません。最後は元記事で確かめてください」という免責が、毎回かならず付いてきます。

情報を「取りに行く」のをやめて、向こうから来てもらう。毎朝ゼロから探しに行く数十分が、届いた1通に目を通す数十秒に変わりました。分野が3つでも5つでも、届くのは毎朝「1通」だけ。立ち位置そのものが、追いかける側から、ひと目だけ眺める側へ移った感じです。

正直に言うと、今回もわたしはコードを一行も書いていません。書いたのはAIで、わたしがやったのは、できあがったものを貼り付けて、一度だけ許可して、追いたい分野を表に並べただけ。それが、このブログのやり方です。

これは、あの「キーワード→ニュース」を“表で育てた”姿です

リサーチ秘書の全体像:設定→集めて要点→メール・LINE・PDFと台帳

種明かしをすると、この秘書は、まったくの新発明ではありません。基礎編で一つずつ作ってきた部品を、合体させて、ひとまわり育てたものです。じつはこの「合体させた秘書」の全体像は、応用編その1・全体像:AI秘書「ぽけっと手帳」で先に予告していました。今回(応用編その2)は、そこで描いた絵を、実際に一台、手で組み上げる回です。

土台になっているのは、基礎編のキーワード→ニュースの回。あそこでは、キーワードをコードの中に直接書いて、そのニュースを毎朝LINEに届けました。今回そのキーワードを、コードの外の「表」に出したのが、いちばん大きな違いです。表に1行足せば、追う分野が一つ増える。外せば、その朝はお休みになる。コードは、一文字も触りません。

ほかにも、見覚えのある部品がそこかしこに入っています。毎朝の自動集計の回長いメールを3行に要約する回未読メールを1通のダイジェストにまとめる回たまった自由記述をテーマ別に分類する回——「読ませて、まとめて、届ける」「テーマで仕分ける」、あの部品たちの組み合わせです。今回は、その仲間を一つにまとめて、「追いたい分野を毎朝そろえて届ける」一台に組み上げました。だから、基礎編をどれか一つでも手を動かした人なら、もう怖いものはありません。

触るのは、この表の1行だけ

リサーチ秘書の設定シート(1行=1分野・教育DX/生成AI/金融)

この秘書で、あなたが触るのは「設定」という名前の表、たった1枚です。1行が、追いたい1分野ぶん。

集める 分野ラベル 検索キーワード 除外語 件数上限 新しさ
教育DX教育DX OR GIGAスクール OR デジタル教科書広告 求人 セール 講座募集 占い57日
生成AI生成AI OR ChatGPT OR Gemini広告 求人 セール 情報商材 アフィリエイト 使い方講座53日
金融リテラシー日経平均 OR 円相場 OR 物価 OR 新NISA OR 金融政策広告 求人 情報商材 必勝法 億り人 おすすめ銘柄 急騰 LINE登録 詐欺53日

配るシートには、この3分野が最初から記入済みで入っています。だから、何も書かなくても、そのまま動きます。分野を増やしたくなったら、下に1行足すだけ。止めたくなったら、いちばん左の「集める」のチェックを外すだけ。コードを開く必要は、一度もありません。

検索キーワードの書き方は、たった3つだけ覚えれば十分です。

  • スペースで区切ると「両方とも含む」(例:教育DX 学校 なら、両方が出てくる記事だけ)。
  • 半角の OR でつなぐと「どちらかを含む」(例:教育DX OR GIGAスクールOR の前後には半角スペースを入れてください)。
  • 省きたい言葉は「除外語」の列に。「広告」「求人」など、混ざってほしくない言葉をスペース区切りで並べると、それを含む見出しは静かに捨てられます。

ちょっと触れておきたいのが、金融の除外語に「投資」を入れていないこと。これはわざとです。「投資」まで弾いてしまうと、新NISAや金融政策といった、本当は読みたい真っ当な記事まで一緒に落ちてしまう。だから除外するのは「必勝法」「億り人」「おすすめ銘柄」「情報商材」——煽りや情報商材、個別銘柄の推奨だけ。お金の話を“怖いもの”にせず、“ちゃんと知っておきたいもの”として残すための、ささやかな線引きです。

まず試す:明日の朝を待たずに、いま1通だけ出してみる

「設定はいじったけど、これで合ってるのかな」——明日の朝まで待ちたくない。その気持ち、よく分かります。だから、その場で1回だけ試せるようにしてあります。

今日できる最短ルートは、この3ステップだけです。

  1. 配られたシートを開いて、「ファイル → コピーを作成」で、自分のものを1枚つくる。
  2. 「設定」の3行は、そのままでOK(教育DX・生成AI・金融リテラシーが記入済み)。気になる分野があれば、あとで下に足せます。
  3. スプレッドシートの上に出るメニュー「リサーチ秘書」→「まず試す」をクリック。これで、その場で1回だけ動きます。

すると、その場で1回だけニュースを集めて、今朝のフル報告が“送信テスト”メールとして、あなた自身の宛先(基本設定に書いたメール)に1通届きますこの「お試し」は、あとで出てくる「台帳」には記録しません。 だから明日の本番では、いまお試しで届いた記事も、ちゃんと「新着」として改めて届きます。お試しで見たから本番に出ない、という取りこぼしは起きません。

ひとつだけ注意を。「まず試す」は、かならずこの“メニュー”から実行してください。 シートに「まず試す」のチェック欄もありますが、そちらは仕組みの都合で動きません(チェックを入れると「メニューから実行してください」と教えてくれて、自動で戻ります)。ニュースの取得やメール送信には“きちんとした許可”が必要で、それはメニューからの実行のときだけ働くからです。

一つだけ、やさしくお願いを。このお試しも、無料で使わせてもらっているAIの“1回ぶん”を使います。 「合ってるかな」と気になって何度も連打すると、すぐあとの「順番待ち」のところでお話しする上限に、近づいてしまいます。1回試して、ひと呼吸。それで十分です。

同じものを作る:AIに渡すプロンプト(中身は読まなくて大丈夫)

この秘書の中身は、自分では作りません。ChatGPTやGeminiのような対話AI(チャット相手)に、次の文章をそのままコピペして頼むだけです。

——先に正直に言っておきます。これから出てくる枠の中は、けっこう長くて、見慣れない専門用語(GAS/RSS/XML/スクリプトプロパティ…)もたくさん並びます。でも、あなたが読んで理解する必要は、まったくありません。 これは全部、AIへの「お願いごと」です。意味の分からない文字列が出てきても、どうか手を止めずに、枠ごとまるごとコピーして、貼ってください。

あなたはGoogle Apps Script(GAS)の熟練エンジニアです。これから指示する仕様を満たす「自分専用リサーチ秘書」のGASを、コピーして貼ればそのまま動く完成形で書いてください。専門用語の説明は不要です。コードと、コード内の日本語コメント(非エンジニアにも分かる代弁口調・誇大表現なし・正直)だけを返してください。冒頭に長い前置きはいりません。コメントは実際のコードの動きと必ず一致させ、「やる」と書いて実装しない死にコメントは残さないでください。

【作るもの(一言)】
スプレッドシートに紐づくGAS。毎朝トリガーで1回動き、「追いたい分野(初期は教育DX・生成AI・金融リテラシー)」のニュースをGoogle ニュースから集め、分野ごとに要約して、メール=フル報告/LINE=見出しダイジェストの形で届ける。できるのは「自分で確かめるための材料を毎朝そろえて届ける」ところまで。真偽の判定はしない。

【絶対にやらないこと(正直に。コメントにも明記)】
– 情報の信憑性(真偽)の判定・採点はしない。媒体の「種類」を目印として示すだけ。
– マインドマップなどの図の自動生成はしない。
– 記事の本文全文は取得・転載しない(見出し+媒体名+リンク+短い抜粋まで)。
– X等のSNSの自動収集はしない(対象はGoogle ニュースのRSSのみ)。
– 破壊的操作はゼロ(読む・送る・行を追記・新規ファイル作成のみ。既存の削除・上書きはしない)。PDF化のとき自分が今作った一時ファイルだけは後始末してよいが、それ以外の既存ファイルには一切触れない。

【情報源】
– Google News RSS:https://news.google.com/rss/search?q=(キーワードをencodeURIComponentでURLエンコード)&hl=ja&gl=JP&ceid=JP:ja
– RSSはXMLなので UrlFetchApp で取得し、XmlService でパースする。各 item から title / link / pubDate / source(媒体名) を取り出す。本文全文は取れない=見出しベースで扱う。
– ここで取れる link は Google ニュース経由のリダイレクトURLでよい(最終的な媒体の直URLまでは解決しない=クリックすると一度Google ニュースを挟んで元記事へ飛ぶ。これで実用上問題ないので、そのまま使う)。
– 取得は muteHttpExceptions:true で受け、429/503(混雑・上限)なら最大3回、Utilities.sleep(1000*(i+1)) で待ち時間を延ばしながらやり直す。

【秘密情報(直書き禁止)】
GeminiのAPIキー・LINEトークン・送信先メールは PropertiesService.getScriptProperties() から読む。
– Geminiキーのプロパティ名は GEMINI_API_KEY を正とする。ただし古い名前で登録済みの場合に無言で劣化しないよう、コードは getProperty('GEMINI_API_KEY') || getProperty('GEMINI_KEY') の順で読む(どちらの名前で登録してあっても拾える)。記事・コード・コメントで案内するプロパティ名は GEMINI_API_KEY に統一すること。
– LINEトークンのプロパティ名は LINE_TOKEN。
– 送信先メールはスプレッドシートの「基本設定」シートB1から読む(1セルだけ。複数宛先・自由欄は作らない)。
– LINEが未設定(LINE_TOKEN空)でもメールだけで完結すること。

【キー未設定でも「無言で劣化」させない(正直さの要)】
Geminiキーが未設定のときは、要約が作れないだけでメールは届けたい。ただし黙って「見出しだけの素の報告」を毎朝送り続けると、本人は「ちゃんと動いている」と誤解して劣化版を受け取り続けてしまう。これを防ぐため:
– Geminiキーが未設定(上記の順で読んで空)のときは、要約は省略して見出し+リンクだけの素の報告を届けつつ、メール冒頭に固定の1行を必ず添える:「※ Geminiキーが未設定のため、今朝は要約を省略して見出しだけお届けしています。[プロジェクトの設定→スクリプトプロパティ]に GEMINI_API_KEY を登録すると、明日から要点と分野まとめが付きます。」
– お試し実行(後述)でキーが未設定のときも、同じ趣旨をトーストで知らせる。
– 送信先メール未設定は従来どおり throw で親切に止めてよい(要約省略の告知と扱いを揃え、「メール送信先未設定だけ止まる/Geminiキーだけ無言」という非対称を作らない)。

【設定シート(非エンジニアが「セルを埋めるだけ」で完結。自由入力は3列だけ)】
シート名「設定」。1行=1テーマ。列は左から:
集める(チェックボックス。OFFの行はその朝スキップ)/分野ラベル(自由記入・報告の見出しになる)/検索キーワード(自由記入。スペース=両方含むAND、半角ORで前後スペース=どちらか)/除外語(自由記入・スペース区切りで複数。含む見出しを捨てる)/件数上限(3/5/8/10)/新しさ(プルダウン 24時間/1日/3日/7日/14日。空欄は7日扱い。「○時間」「○日」を数値として解釈する)。
初期値として次の3行を入れておくこと(そのまま試せる状態)。「OR」は半角・前後スペース必須:
✓ / 教育DX / 教育DX OR GIGAスクール OR デジタル教科書 / 広告 求人 セール 講座募集 占い / 5 / 7日
✓ / 生成AI / 生成AI OR ChatGPT OR Gemini / 広告 求人 セール 情報商材 アフィリエイト 使い方講座 / 5 / 3日
✓ / 金融リテラシー / 日経平均 OR 円相場 OR 物価 OR 新NISA OR 金融政策 / 広告 求人 情報商材 必勝法 億り人 おすすめ銘柄 急騰 LINE登録 詐欺 / 5 / 3日
(金融の除外語に「投資」は入れない=正当な市場・政策・NISA記事を残し、煽り・情報商材・個別銘柄推奨だけを弾く方針。)
除外は必ず「除外語の列」で行い、検索キーワード内のマイナス記法は使わない。手で行を足したとき用に、チェックボックスを付け直す「整える()」関数も用意する。整える()では見た目も整える=ヘッダ行に色(白文字・太字・固定)、データ行に薄い縞模様、列幅を読みやすく(キーワード・除外語は折り返し)、「新しさ」をプルダウンに、タブにも色(値は壊さず装飾だけ付け直す)。作成時の関数からも同じ装飾を呼ぶ。

【媒体表(媒体名→種類のシード。自分で育てる)】
シート名「媒体表」。列は「媒体名(部分一致)」「種類(公式/報道/専門/個人)」。初期シードとして次を入れる:
文部科学省=公式 / こども家庭庁=公式 / 金融庁=公式 / 日本銀行=公式 / NHK=報道 / 日本経済新聞=報道 / 朝日新聞=報道 / 読売新聞=報道 / ITmedia=専門 / 教育新聞=専門
判定は部分一致。表に無い媒体だけ、まとめてGeminiに1回だけ「公式/報道/専門/個人のどれか1語、分からなければ不明」と尋ね、結果は提案として表示する(自動で表に書き込まない)。

【関数の役割分担(日本語名で)】
毎朝実行()=司令塔。下を順に呼び、0件/失敗/正常の3分岐で締める(トリガーもメニューもここを呼ぶ)。
設定読み込み()=設定シートのON行だけ取り出す。
ニュース収集(テーマ)=1テーマのRSSを取得し見出し配列を返す(429/503バックオフ)。
重複除去(記事配列)=同じ朝の中はリンク一致で1つに。さらに台帳に既出のリンクも除いて新着だけ残す。
除外語フィルタ(記事配列,除外語)=除外語を含む見出しを捨てる(文字一致のみ・AI不要)。
媒体タイプ判定(媒体名)=媒体表の部分一致で公式/報道/専門/個人を返す(未知は次へ)。
未知媒体をAIで分類(媒体名リスト)=表に無い媒体だけまとめて1回Geminiに尋ねる。
Gemini要約(payload)=Geminiを1回呼ぶ共通部品(下記エンドポイント・503/429リトライ内蔵)。キー未設定なら呼ばず空を返し、上記の告知につなぐ。
分野まとめを作る(分野,記事配列)=1分野=1回でJSON要約を受け取る。
今日の要点3行を作る(全記事)=全分野の見出しから1回で「今日の3点」。
メール本文作成(要点,分野別,日付)=フル報告をHTMLで組む(色ラベル+ひとこと+リンク+免責。キー未設定時は冒頭に告知1行)。
メール送信(件名,本文)=自分宛に送信(MailApp)。
LINE本文作成(要点,分野別)=見出しダイジェストの短文を組む。
LINE送信(text)=LINE broadcastに1通(未設定なら何もしない)。送って終わりにせず、200以外の応答は Logger.log に残す(無言の握りつぶし禁止。副回線なのでメール本線は止めない)。
LINE接続テスト()=メニュー用。固定の短い1通をLINE broadcastし、HTTP応答コードで成否をトーストで知らせる(Geminiも台帳も使わない=トークンの正しさだけを切り分け)。401はトークン無効、403は配信未有効、429は月の無料配信枠超過、と言い分ける。200でも友だち0人/未公開だと届かないことがあるので「LINEを開いて実際に届いたか確認を」と必ず添える。生のAPI応答は読者に見せずトーストは日本語のやさしい文言にする。
台帳追記(新着配列)=シート「台帳」へ〈日付・分野・キーワード・見出し・媒体・媒体タイプ・リンク〉で追記(リンク一致はスキップ・自動削除なし)。
朝刊PDFを作成()=メニュー/ボタン用。その朝のフル報告をDocumentApp→PDF化→Drive保存(下記)。
onOpen()=カスタムメニュー「リサーチ秘書」(まず試す/今朝の朝刊をPDFに/LINEに接続テスト送信/整える)。
onEdit(e)=「基本設定」の「まず試す」チェックがONになったら、メニュー実行を案内するトーストを出して自動でOFFに戻すだけ。※重要:onEdit(シンプルトリガー)はメール送信・外部取得(Gemini/ニュース取得)ができない仕様なので、チェックからは まず試す() を実行しない(実行するとエラーで何も起きず誤解を招く)。トーストは権限不要で出せる。
まず試す()=お試し本体。1回だけ収集→今朝のフル報告を1通だけ“送信テスト”メールとして自分宛に届ける(台帳には記録しない)。実行は必ず メニュー[リサーチ秘書 → まず試す]から(onEditからは上記の理由で呼ばない)。メール末尾に「これはお試し(送信テスト)です。台帳には記録していないので、明日の本番では、いま届いている記事も“新着”として改めて届きます」の1行を添える。
ymd(d)など小道具。

【「まず試す」の作り(メニュー実行が正・死にコメント厳禁)】
「まず試す」は必ず カスタムメニュー[リサーチ秘書 → まず試す] から実行する形にする(収集・Gemini・メール送信を行うため、完全な権限が要る)。「基本設定」シートにも「まず試す」チェック欄を置いてよいが、そのチェック(onEdit)からは まず試す() を実行しない=onEditはシンプルトリガーでメール送信・外部取得ができないため、実行してもエラーになって何も起きず利用者が混乱する。チェックがONになったら onEdit は「上のメニュー[リサーチ秘書 → まず試す]から実行してください(このチェックでは動きません)」とトーストし、自動でOFFに戻すだけにする(トーストは権限不要で出せる)。基本設定の案内文(A5等)も「実行はメニューから/送信テストメールが自分宛に届く/チェックでは動かない」と正直に書く。メニュー実行のコメントに「お試しも無料枠を1回ぶん使う/連打すると順番待ち(429)になることがある」を添える。コメントに書いた挙動は必ず実装と一致させる(死にコメント禁止)。

【Geminiの呼び方(共通部品)】
– モデルは gemini-2.5-flash(無料枠)。
– URL:https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent
– ヘッダ:{ 'x-goog-api-key': GEMINI_API_KEY }、payloadは contents 形式。generationConfig に responseMimeType:'application/json' を指定してJSONで返させる。
– muteHttpExceptions:true で受け、429/503は最大3回 Utilities.sleep(1000*(i+1)) でバックオフ。
– 返り値は念のため text.replace(/“`json|“`/g,'').trim() してから JSON.parse。try/catchで、パース失敗時は要約を空にして「見出し+リンクだけの素の報告」にフォールバックする(届かないより素のまま届くを優先)。

【Geminiプロンプト2本(コードの中に文字列として埋め込む。返事はJSONだけ)】
(a) テーマ別まとめ(1分野=1回)。末尾にコードが [{"見出し":"…","媒体":"…","リンク":"…"}] を差し込む:
「あなたはニュースの要点だけを整理する秘書です。次に渡すのは『ある分野について今朝集めた見出し一覧』です。見出しと媒体名から読み取れる範囲だけで答え、本文は読んでいないので推測で補わず、真偽の判断もしないでください。出力は次のJSONだけ(前後の説明・記号は不要):
{"分野まとめ":"今朝この分野で起きていることを事実ベースで3〜4文。断定せず『〜と報じられている』調で。","見出し":[{"見出し":"(渡された見出しをそのまま)","ひとこと":"目を通す価値を15字程度・誇張しない","媒体":"(渡された媒体名)","リンク":"(渡されたリンク)"}],"気になった1本":"最初に開くなら、の見出しを1つ(理由ひとこと)"}
ルール:渡された見出しの数だけ配列に入れ、文言は変えない。リンクはそのまま。該当が無ければ『分野まとめ』に『今朝はこの分野の新着はありません』、配列は空に。分野名:{分野} 見出し一覧:{JSON配列}」
(b) 今日の要点3行(全分野で1回):
「あなたはニュースの要点だけを整理する秘書です。次に渡すのは『今朝、複数分野で集めた見出し一覧』です。見出しと媒体名だけを見て、今朝とくに目を通す価値がありそうな話題をちょうど3つ選び、各1行で。本文は読んでいないので推測で補わず、真偽判断はしない。『重要だと断定』ではなく『まず目を通す入口』として選ぶこと。出力は次のJSONだけ:{"今日の要点":["1行目(40字以内)","2行目","3行目"]} 3つに満たない朝はある数だけ。見出し一覧:{全分野のJSON配列}」

【出し分け:メール=フル/LINE=ダイジェスト】
同じ材料(今日の要点3行・分野別まとめ・新着)から、収集・要約は1回で、出口だけ二股にする。
– メール:HTMLで〈(キー未設定時のみ告知1行→)日付→今日の要点3行→分野ごとの見出しブロック(色ラベル+ひとこと+出典リンク)→気になった1本→免責〉。リンクは全件。該当なし分野は「該当なし」と正直に出す(水増し禁止)。HTMLに差し込む見出し・媒体名・リンクは必ずエスケープしてから入れる(href属性も含めて)。
– LINE:〈今日の要点3行→各分野「分野名(n件)」+見出し上位2〜3件([報道]等の角括弧ラベル+見出しのみ。リンクは1分野1本まで)→短縮免責→「詳しくは今朝のメールへ」〉。全リンクは載せない。

【媒体タイプの色分け(種類の目印に限定)+免責フッター(固定文字列・AIに書かせない)】
– 色は媒体の「種類」表示だけ。メールは淡い色ラベル(公式=青/報道=緑/専門=紫/個人=灰)、LINEは色が出ないので [公式][報道] の角括弧。
– 緑黄赤の総合点・信頼スコア・点数化・断定表現は一切出さない。
– 免責フッターはコードで下の固定文字列を連結し、色分けと必ず同じ画面に連続して置く(メール・PDF両方):
「───────────────
※ 色分けは媒体の「種類」を示すだけの目印です。真偽は判定していません。
  これは“信じてよい印”ではなく、自分で確かめるための“目印”です。最後は元記事で確認してください。
※ これは記事の本文ではなく、今朝届いた見出しの一覧です。気になったらリンクから元記事へ。
※ 混雑などで届かない朝もありますが、壊れてはいません。明日また試します。」
– LINE短縮版:「※色分けは媒体の種類の目印。真偽判定はしていません。最後は元記事で確認を。」

【PDFボタン】
朝刊PDFを作成()は、その朝のフル報告(要点+分野別+免責)を DocumentApp.create('リサーチ秘書 朝刊 '+ymd(today)) で作り saveAndClose()→getAs('application/pdf') してDriveに保存する。保存先は専用フォルダ「リサーチ秘書 朝刊」:DriveApp.getFoldersByName で探し、無ければ createFolder で自動作成し、あればそれを使う。
PDFを保存したら、変換のために今この関数が作った一時的なGoogle Docだけを DriveApp.getFileById(doc.getId()).setTrashed(true) でゴミ箱に送り、PDFだけ残す(毎朝の一時Docがマイドライブに溜まらないように)。後始末するのは今作った新規Docのみで、既存ファイルには一切触れない。終わったら toast で「保存しました」。本文長文転載はせず、見出し+媒体+リンク+自分のことばの要点まで。破壊的操作なし(新規作成+自作の一時Docのゴミ箱送りのみ)。

【失敗時の3分岐】
0件=「今朝は新着なし」/取得・送信が最後まで失敗=「混雑で届きませんでした、明日また試します」/正常=通常配信。1分野コケても朝刊全体は届く(その分野だけ静かに諦める)。どの分岐でも「届かない朝もありますが壊れていません」を1行添える。

【$0で収まる守り(Gemini呼び出し回数の上限)】
1朝の呼び出しは「分野数×1(分野まとめ)+1(今日の要点)+最大1(未知媒体分類)」=3テーマなら約4〜5回。見出し1本ごとに呼ばず必ずテーマごとに束ねる。各テーマの件数上限(既定5)でGeminiに渡す量も抑える。コード冒頭に安全定数(例 const 上限=15;)を置き、実際の呼び出し回数をカウントして超えそうなら残り分野は翌朝に回し「全部は今朝出せませんでした、続きは明日」と添える。

【文体(コメントとメール/LINE文面)】
非エンジニアの本人になり代わる代弁+正直な告白の口調。誇大・断定はしない。専門語は最小限。できないこと(真偽判定/図の生成/本文全文/SNS)は正直に「やりません」と明記する。コメントは必ず実装と一致させる(やると書いて実装しない・実装したのに違う説明を書く、をしない)。

以上の仕様を満たす完成コードを、コピーして貼ればそのまま動く形で出力してください。

このとおりに頼めば、AIがコードと手順をひとそろい返してくれます。あとは、出てきたものを貼り付けて、初回だけ許可して、毎朝動く時刻を1回セットするだけ。長くて面食らうかもしれませんが、長いのは「やってほしいこと」と「やってほしくないこと」を、AIに正直に念押ししているからです。その「貼り付ける場所」の開き方は、許可画面の回に写真つきでまとめてあります。

毎朝、裏側で起きていること(読まなくても動きます)

ここは、仕組みに興味がある人だけ、のぞいてください。読み飛ばしても、秘書はちゃんと動きます。

毎朝、決めた時刻になると、秘書は静かにこの順番で働きます。

  1. 設定の表を、上から1行ずつ読む。 「集める」にチェックの入った分野だけを、その朝の対象にします。
  2. 分野ごとに、ニュースを集める。 検索キーワードで、Google ニュースから見出し・媒体名・リンク・日付を、件数上限まで取ってきます。混雑して取れなかったら、少し待って、何回かやり直します。
  3. 重複と、いらないものを落とす。 同じ朝に二重で来た記事はまとめ、これまでに台帳へためた既出の記事も外して、新着だけを残します。さらに「除外語」を含む見出しを捨てます。
  4. 出どころに種類のラベルを付ける。 「媒体表」と照らし合わせて、公式/報道/専門/個人を見分けます。表にない媒体だけ、AIにそっと一度だけ尋ねます。
  5. 要点と分野まとめを作って、2つの出口に出す。 分野ごとのまとめと「今日の要点3行」をAIに作ってもらい、メール(フル報告)とLINE(ダイジェスト)の形に組んで届けます。

大事なのは、この秘書がやっているのは、ぜんぶ「見るだけ」「届けるだけ」だということ。ニュースを取ってきて、まとめて、あなたに渡す。何かを消したり、書き換えたり、勝手にどこかへ送ったりは、一切しません。あなたのファイルにも、メールにも、傷ひとつ付けない設計です。だから、間違えても、まず壊れません。

届け先は2つを使い分け = メールは“フル報告”、LINEは“見出しの速報”

同じ材料から、届け先を2つ用意しました。LINEは今日ざっと掴む目次、メールは腰を据えて読む本編——そんなふうに使い分けられます。どちらか一方だけでも、まったく問題ありません。

メール = 机に広げる「今朝の朝刊」

メールで届くフル報告(今朝の要点+分野別の見出し)

メールは、その朝のすべてが詰まった“フル報告”です。

いちばん上に日付と今日の要点3行。その下に、分野ごとのブロックが続きます。各見出しには、出どころの色ラベル(公式は青、報道は緑、専門は紫、個人は灰)と、AIがそえた15字ほどの「ひとこと」、そして元記事へのリンク。分野ごとに「まず開くなら、この1本」という案内も付きます。リンクは、間引かず全部載せます。

——ここで一つだけ、先に。この色は“種類”を見分けるための目印であって、点数ではありません(緑だから正しい、という意味ではない、という話は、すぐあとの節でちゃんとお伝えします)。

ひとつ、この秘書の誠実なところを。新着がなかった分野は、ごまかさず「該当なし(今朝はこの分野の新着はありませんでした)」と正直に出します。 無理に何かを並べて、中身を水増ししたりはしません。空っぽの朝は、空っぽと言ってくれる。それも、毎朝続けて信じられる報告の条件だと思っています。

LINE = ポケットに届く「見出しだけ」

LINEに届いた毎朝のダイジェスト

LINEは、ポケットでさっと掴む“見出しダイジェスト”です。

今日の要点3行のあと、「教育DX(5件)」のように分野ごとの件数と、見出しの上位2〜3件が並びます。[報道] [公式] という角括弧のラベルが付き(LINEには色が出ないので、文字で)、リンクは各分野1本まで。最後に「詳しくは今朝のメールへ」と添えてあります。全部のリンクは、あえて載せていません。 通勤中や朝の支度の合間に、親指1本で「今朝はこんな感じか」と掴むため。じっくり読みたくなったら、メールを開けばいい。

そして、逃げ道を1つ。LINEが重たいな、と感じる人は、メールだけにできます。 LINEを設定しなければ、秘書はメールだけで何の問題もなく完結します。最初の一歩は、準備ゼロのメールだけで踏み出すのが、いちばん軽いです。

媒体タイプの“色分け”は、信じるための印ではなく「出どころの目印」です

報告には、見出しの出どころを「公式/報道/専門/個人」の4つに色分けして添えています。ここは、いちばん丁寧にお伝えしたいところです。

これは、その“種類”をひと目で見分けるための目印です。判定は、自分で少しずつ育てる「媒体名→種類」の対応表でおこないます。「文部科学省=公式」「NHK=報道」「ITmedia=専門」——最初は10件ほどのお手本が入っていて、表にない媒体だけ、AIに「これはどの種類?」と控えめに一度だけ尋ねます(その答えは「これは○○かも」という提案として出るだけで、勝手に表へ書き込みはしません)。気に入った答えは、自分で表に1行足して育てていく。使うほど、あなた好みに賢くなる仕組みです。

はっきりさせておきたいのは、色は“信じてよさ”の点数ではないということ。緑だから正しい、赤だから怪しい、という総合点はつけません。種類と正しさは、そもそも別物だからです。だからこの秘書は、緑・黄・赤の信号機のような点数化も、信頼スコアも、断定する言い方も、一切しません。色は、出どころの種類を示すだけ。これは「信じてよい印」ではなく、自分で確かめるための「目印」です。 気になった見出しは、必ず元記事のリンクを開いて確かめてください。そこは最後まで、人が握る設計にしています。

そして報告の末尾には、毎回かならず、この免責が連結されます。色分けと、いつも同じ画面に。

───────────────
※ 色分けは媒体の「種類」を示すだけの目印です。真偽は判定していません。
  これは“信じてよい印”ではなく、自分で確かめるための“目印”です。最後は元記事で確認してください。
※ これは記事の本文ではなく、今朝届いた見出しの一覧です。気になったらリンクから元記事へ。
※ 混雑などで届かない朝もありますが、壊れてはいません。明日また試します。

この免責は、AIに書かせていません。文言がブレないよう、コードに固定の文字列として埋め込んであります。色分けと免責は、いつもセット。それが、この秘書のいちばん大事な約束です。

そして、この4分野でいちばん気をつけているのが「金融リテラシー」です。お金の話は、いちばん「信じてよい印」だと誤解されやすい。だからこの分野こそ、この色分けと免責のセットを、いちばん大切に運用しています。

ワンクリックで「今朝のフル報告」をPDFに

ワンクリックで作る朝刊PDF

朝の報告を、手元に残しておきたい。会議の前に印刷して持っていきたい。そんなときのために、「今朝の朝刊をPDFに」というボタンを用意しました。

スプレッドシートの上に出る「リサーチ秘書」メニューから、これを押すだけ。その朝のフル報告(今日の要点+分野別の見出し+免責)がPDFになって、Driveの中に保存されます。保存先は、「リサーチ秘書 朝刊」という専用フォルダ。無ければ自動で作ってくれるので、毎朝のPDFが一か所にきちんと貯まっていきます。

PDFにも、もちろん免責はちゃんと付きます。「信じてよい印ではなく目印です」の一文は、印刷して誰かに見せる場面でこそ効くからです。

そして、ここでも壊すものは何もありません。やっているのは「新しく作る」だけ。 PDFに変換するために一瞬だけ作る下書き(Googleドキュメント)も、変換が終わったら、その“自分が今作ったばかりのもの”だけをそっとゴミ箱へ。PDFだけがきれいに残ります。あなたの既存のファイルには、指一本触れません。

そして、見出しは静かに“ためて”います

ここまで読んで、気づいた方がいるかもしれません。重複を消すために、この秘書は「台帳」という名前のシートに、毎朝の見出しを消さずに記録し続けています。日付・分野・キーワード・見出し・媒体・出どころの種類・リンク。同じ記事は重複させず、古いものを勝手に消すこともしません。ただ、静かに積もっていきます。

これは、いまはまだ地味な伏線です。

思い返してみてください。基礎編のキーワード→ニュースの回は、ニュースを「送って終わり」でした。届けたら、その記憶はどこにも残らない。だから、先週どんなニュースがあったかを後から振り返ることは、できなかった。

でも、こうして毎朝の見出しを台帳にためておくと——いつか「先週の教育DXって、どんな動きだったっけ?」と聞いたときに、答えられる土台になります。前の日と比べて何が新しいか。今週の流れはどうだったか。そういう問いに応えられるのは、データが残っているからこそ。

つまり、いまの台帳は、「通知してくれるbot」から「本物のリサーチ秘書」へ育つための、最初の貯金なんです。地味だけれど、ここがいちばん大きな分かれ道。続きは、最後の次回予告で。

つまずき先回り

ここからは、実際にわたしがつまずいた場所を、先回りでお伝えします。どれも「壊れた」わけではない、というのが共通点です。

初回だけ出る「許可」の画面

初回だけ出るGoogleの許可(アクセス内容)画面

初めて実行するとき、一度だけ許可の画面が出ます。今回は「外部のサイトに接続する」「メッセージを送る」「ドキュメントを作成する」といった言葉が並ぶので、少しドキッとするかもしれません。

でも、落ち着いて中身を見れば、やっていることはこれだけです。ニュースのサイトを見に行って、要点を自分に届ける。押したときだけ、PDFを作る。 何かを消したり、外の知らない誰かに送ったりはしません。この画面で「自分には早かったかも」と手が止まる人は、本当に多いです。出てくる画面とボタンを押す順番は、前述の許可画面の回に写真つきでまとめました。一度通れば、次からは出ません。

「順番待ち」「混雑」で止まっても、壊れていません

今回いちばんお伝えしたいのが、ここです。

この秘書が使っているAI(Gemini)は、無料で使えるぶん、1日に呼び出せる回数に上限があります。 毎朝1回きちんと使うぶんには、まったく足りる設計です(作例の3分野で、1朝あたりAIを呼ぶのは4〜5回ほど。上限には、ゆとりをもって収まります)。でも——ここで白状すると、記事を準備している最中、わたしは「まず試す」が面白くなって、短い時間に何度も連打してしまいました。

すると、その上限に達して、AIから「今日はもう順番待ちです」と返されたんです(裏側では「429」という番号で表されます。これは“順番待ち”の合図です)。そのあいだ、要約だけが取れなくなって、分野のまとめがこんな“お休み表示”に変わりました。

今朝はこの分野で5件の新着がありました。(今回はまとめ文の作成を省略しています——下の見出しからご覧ください。)

最初これを見たとき、「壊した……?」と血の気が引きました。でも、違いました。これは故障ではなく、無料枠の上限に当たっただけ。 そして、ここがこの秘書の大事なところ。要約がお休みの朝でも、分野は空白になりません。 「今朝は◯件ありました」という正直な一文と、見出しと、リンクは、ちゃんと届く。まとめ文が抜けても、あなたが元記事にたどり着くための道は、ふさがらない設計にしてあります。なお、まとめが取れない朝は、連打のときの上限だけでなく、混雑でうまく返ってこなかったときも同じこの一文になります(混雑のほうは、このあとすぐ)。どちらにせよ「見出しは必ず並ぶ」のは変わりません。

連打さえしなければ、毎朝1回の普通の使い方で上限に届くことは、まずありません。だから、もしある朝まとめが薄くても、慌てないでください。それは壊れたのではなく、ちょっと使いすぎただけ。連打したわたしが特殊なだけです。(ひとつだけ補足を。このAIを、同じキーで日中もChatGPT代わりにたくさん使っている日は、その合算で上限に近づくことはあります。それでも、毎朝1回の朝刊ぶんは、ごくわずかです。)

もうひとつは、ただの「混雑」。アクセスが集中していると一時的に返事が遅れるだけなので、「少し待って、待ち時間を延ばしながら2〜3回やり直す」処理を、最初から仕込んであります。多くは、これで自動で乗り越えます。それでも最後までダメだった朝は、「混雑で届きませんでした、明日また試します」と1行だけ、静かに知らせる。何も来ないより、「今日はダメだったけど壊れてはいない」と分かるほうが、ずっと安心だからです。

届け先の準備(LINEの“合鍵”は一度だけ/面倒ならメールで)

まず、いちばん軽い道から。メールは、準備ゼロです。 「基本設定」シートのB1に、自分のメールアドレスを1つ書くだけ。これだけで、明日から朝刊が届きます(逆に、ここを書き忘れると秘書はそこで止まって教えてくれます。黙って劣化版を送り続けたりはしません)。「LINEはハードルが高そう」と感じたら、まずはメールだけで始めて、まったく問題ありません。

LINEにも届けたい人だけ、もう少し読んでください。ここは、わたしも一度つまずいた場所です。

LINEは、その公式アカウントの「友だち全員にいっせいに配る」やり方(broadcastといいます)で届きます。必要な“合鍵”は、「チャネルアクセストークン」という長期のもの1つだけ。手順は過去の回にそろっているので、LINEとやりとりする回毎朝きまった時刻に届ける回を開きながら進めれば、迷いません。合鍵はシートには書かず、裏側に大事にしまうので、画面を誰かに見せても漏れません。

ここで、わたしの実話を2つ。

ひとつ。昔の「LINE Notify」のトークンを貼ると、はじかれます。 LINE Notifyは終了したサービスで、そのトークンを入れると「401」(=合鍵が違いますよ、の合図)で止まります。必要なのは、いまの「Messaging API」のチャネルアクセストークン。名前が似ていて取り違えやすいので、ここだけ気をつけてください。

ふたつ。メニューに「LINEに接続テスト送信」という入り口があります。押すと、短いテストが1通だけ飛びます。でも——ここが大事です。画面に「送信しました」と出ても(システム上は“送れた”の合図が裏側で返っているだけで)、必ずLINEを開いて、実際に届いたか目で確かめてください。 友だちが0人だったり、アカウントが未公開だったりすると、システム上は「送信成功」と返ってきても、手元のLINEには何も届かないことがあるんです。「送れた」と「届いた」は、別物。最後はやっぱり、自分の目で。

それと、LINEの無料配信は月200通まで。試しすぎると一時的に止まりますが、これも壊れたのではなく、ただの上限です。

正直な限界(先に言っておきます)

このブログのやり方として、できないことは先に正直に言います。この秘書にも、はっきりした限界が4つあります。

ひとつ、信憑性は“目印”までです。 AIに真偽を判定させることはしていません。できるのは、媒体の種類や出典リンクといった、自分で見極めるための材料を並べるところまで。緑・黄・赤の総合点で「これは正しい」と断定風に見せることは、しません。最後の真偽は、元記事を開いてあなたが確かめてください。

ふたつ、マインドマップのような“図”の自動生成は、この回ではしません。 GASに図を描く機能はなく、無理に出すと中途半端になります(Markmapに貼ると放射状の図になる代替はありますが、それはPhase2の話)。今回は「メールとLINEで、ちゃんと1通届く」に集中します。

みっつ、記事の本文そのものは、読めません。 Google ニュースから取れるのは、見出しと短い抜粋、媒体名、リンクまで。だから要約も色分けも、ぜんぶ“見出しをもとにした見当”にとどまります。(この“見出しまで”という制約は、本文を長々と転載しない著作権の安全線とも、ぴたり重なっています。)

よっつ、X などのSNSは、対象外です。 SNSの自動収集は無料では実質むずかしいので、この秘書が見に行くのはGoogle ニュースや信頼できるサイトのRSSまで。

——情報を集めてくれる相手が、こうして自分の限界を正直に申告してくれること。それ自体が、わたしはいちばん信頼できるところだと思っています。

次回予告:ためた見出しに“質問できる”ところまで

ここまでで、毎朝あなたのもとに、追いたい分野の見出しが、要点つきで1通届くようになりました。立ち位置は、もう向こう側に移っています。

でも、この秘書には、まだ眠っている力があります。そう、台帳に静かにたまり続けている、毎朝の見出したちです。

次のステップ(Phase2/3)では、その貯金を使います。「昨日まで無かった、今朝はじめての話題」だけを太字で見せる前日比。 直近7日を「今週の流れ」としてまとめる週次ダイジェスト。 さらに、ここまで「今回はやりません」と見送ってきたアウトライン/マインドマップ風の図(Markmapに貼ると放射状に広がるあれ)も、ためた見出しを材料に、ようやく意味を持ち始めます。そしていちばんの目玉——「先週の教育DXって、どうだった?」と聞くと、台帳をさかのぼって答えてくれるところまで。

ここまで来ると、もう「通知してくれるbot」ではありません。ためた記憶に問いかけられる、本物のリサーチ秘書です。届けて終わりだった毎朝が、“問いかけに答えてくれる”毎朝に変わる。その続きを、次回お見せします。コードが書けなくても、AIに任せて、ちゃんと同じところへたどり着けます。ここまで手を動かしてきたあなたなら、もう、怖いものはありません。

公開しました:育てる編①:ためた見出しに"質問"できる(台帳Q&A)


このシリーズのこれまで:創刊号(入口)記事01:フォーム回答をメールで受け取る記事02:フォーム回答をLINEに即時通知記事03:フォーム回答を毎朝自動集計してLINEに通知記事04:名簿から差し込みメールを一斉送信記事05:長いGmailをAIで3行+やることリストに記事06:毎朝、未読メールを自動で要約して1通に記事07:たまった自由記述を、AIでテーマ別に分類・集計記事08:登録キーワードのニュースを、毎朝LINEに応用編その1:AI秘書「ぽけっと手帳」(全体像)応用編その2:リサーチ秘書(追いたい分野のニュースが毎朝1通)(この記事)育てる編①:ためた見出しに"質問"できる(台帳Q&A)育てる編②:「医療も追って」で集める分野を増減(設定変更)育てる編③:「今週どうだった?」でためた台帳を週次まとめ育てる編④:「地図にして」でためた見出しを放射状の地図に(見出しマップ)育てる編⑤:「再エネ政策を追いたい」で検索語まで含む設定をAIが設計(設定アシスタント・完結)応用編その3:受発注・請求 秘書(受注が来たら、選ぶだけで見積書・請求書のPDFに)受発注 育てる編①:入金消込・督促・領収書PDF受発注 育てる編②:受注した瞬間に在庫を押さえる受発注 育てる編③:発注点アラートと発注書PDF受発注 育てる編④:月次集計・売上グラフ・会計CSV(最終回)基礎編:URLひとつで“自分の申込ページ”を作る(Webアプリ)基礎編:申し込まれた瞬間に、確認メールが自動で返る基礎編:申し込んだら、控えのPDFが自動で届く基礎編:申込の控えが、勝手にドライブへ積み上がっていく基礎編:申込のひとことを、届いた瞬間にAIが仕分ける基礎編:誰も画面を開いていないのに、毎朝まとめが届く基礎編:申込が来た瞬間、ポケットのLINEが鳴る(最終回)応用編その4:申込・予約 秘書(満席の瞬間、ページが自分から閉まる)申込・予約 育てる編①:キャンセル待ちと自動繰り上げ申込・予約 育てる編②:承認制とお断り下書き申込・予約 育てる編③:前日リマインダーと毎朝まとめ申込・予約 育てる編④:管理ページ(最終回)

#GAS #Googleニュース #AI要約 #LINE #コピペOK

コメント

タイトルとURLをコピーしました