🚀 もっと簡単!ブログ自動投稿の選択肢
1. 📧 メールで完結する方法(最も簡単)
仕組み
毎朝7時 → 提案メールが届く → 返信するだけ → ブログ投稿
実装方法
Gmail + Google Apps Script + GitHub Actions
// Google Apps Script (自動送信)
function sendMorningProposals() {
const proposals = generateProposals(); // AI で生成
const html = `
<h2>今日のブログ提案</h2>
<p>返信で番号を送ってください(例:1)</p>
<h3>1. ChatGPTで売上3倍の成功法則</h3>
<p>中小企業向けの実践ガイド</p>
<h3>2. 8つの本能マーケティング入門</h3>
<p>心理学を活用した販売術</p>
<h3>3. AI時代の競合分析テクニック</h3>
<p>差別化戦略の立て方</p>
`;
MailApp.sendEmail({
to: 'your-email@gmail.com',
subject: '【LeadFive】本日のブログ提案',
htmlBody: html
});
}
// トリガー設定(毎朝7時)
ScriptApp.newTrigger('sendMorningProposals')
.timeBased()
.atHour(7)
.everyDays(1)
.create();
メリット
- 📱 スマホの通知で確認
- 📧 普段使っているメールで完結
- 🔄 返信するだけの簡単操作
2. 📲 LINE公式アカウント(日本で最適)
仕組み
LINE公式 → リッチメニューで選択 → 即投稿
実装方法
LINE Messaging API + AWS Lambda
// Lambda関数
exports.handler = async (event) => {
const body = JSON.parse(event.body);
if (body.events[0].message.text === '提案') {
// カルーセルで提案を表示
const proposals = {
type: 'template',
altText: '本日のブログ提案',
template: {
type: 'carousel',
columns: [
{
title: 'ChatGPTで売上3倍',
text: '成功事例から学ぶ',
actions: [{
type: 'postback',
label: 'これで投稿',
data: 'action=post&id=1'
}]
},
// ... 他の提案
]
}
};
await lineClient.replyMessage(replyToken, proposals);
}
};
メリット
- 💚 日本人の9割が使用
- 🎨 ビジュアルで選びやすい
- ⚡ ワンタップで投稿
3. 🔗 専用Webアプリ(最も自由度高い)
仕組み
毎朝プッシュ通知 → Webアプリを開く → 選んで投稿
実装イメージ
<!-- ブログ提案ダッシュボード -->
<div class="proposal-dashboard">
<h1>今日のブログ提案 📝</h1>
<div class="proposal-cards">
<div class="card high-priority" onclick="selectProposal(1)">
<span class="badge">🔴 急ぎ</span>
<h3>ChatGPTで売上3倍の成功法則</h3>
<p>想定読者:中小企業経営者</p>
<p>期待効果:具体的な実装方法を理解</p>
<button>この記事を書く</button>
</div>
<!-- 他の提案カード -->
</div>
<div class="quick-actions">
<button onclick="regenerate()">🔄 他の提案を見る</button>
<button onclick="customTopic()">✍️ 自分で書く</button>
</div>
</div>
<style>
.proposal-cards {
display: grid;
gap: 1rem;
}
.card {
padding: 1.5rem;
border: 2px solid #e5e7eb;
border-radius: 12px;
cursor: pointer;
transition: all 0.3s;
}
.card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}
.high-priority {
border-color: #ef4444;
}
</style>
デプロイ方法(Vercel)
# 1. プロジェクト作成
npx create-next-app@latest leadfive-blog-assistant
# 2. Vercelにデプロイ
vercel
# 3. スマホのホーム画面に追加
# PWA対応で通知も可能
メリット
- 📱 スマホアプリ風の使い心地
- 🎨 完全カスタマイズ可能
- 📊 分析機能も追加できる
4. 💬 Slack(チーム利用に最適)
仕組み
Slackbot → スレッドで提案 → 絵文字リアクションで選択
実装方法
// Slack App
app.command('/blog', async ({ ack, say }) => {
await ack();
const proposals = await generateProposals();
await say({
blocks: [
{
type: 'section',
text: {
type: 'mrkdwn',
text: '*今日のブログ提案* 📝\n番号の絵文字でリアクションしてください'
}
},
{
type: 'section',
text: {
type: 'mrkdwn',
text: ':one: *ChatGPTで売上3倍*\n└ 中小企業向け実践ガイド'
}
},
// 他の提案...
]
});
});
// リアクション検知
app.event('reaction_added', async ({ event }) => {
if (event.reaction === 'one') {
// 1番の記事を生成
await createBlogPost(proposals[0]);
}
});
メリット
- 👥 チームで相談できる
- 📍 業務ツールに統合
- 🔔 確実に通知が届く
5. 🤖 独自のLINE Bot(個人利用に最適)
最もシンプルな実装
# Python + Flask(Herokuで無料運用)
from flask import Flask, request
import requests
import schedule
import time
app = Flask(__name__)
# 毎朝7時に提案送信
def send_proposals():
proposals = [
"1️⃣ ChatGPTで売上3倍の法則",
"2️⃣ 8つの本能マーケティング",
"3️⃣ AI競合分析の極意"
]
message = "おはよう!今日の提案:\n" + "\n".join(proposals)
line_bot_api.push_message(USER_ID, TextMessage(text=message))
# 番号で返信したら記事作成
@app.route("/callback", methods=['POST'])
def callback():
body = request.get_json()
if body['events'][0]['message']['text'] in ['1', '2', '3']:
# GitHub Actions をトリガー
trigger_blog_creation(number)
reply = "了解!10分で記事を作成します📝"
return 'OK'
schedule.every().day.at("07:00").do(send_proposals)
🏆 おすすめ度ランキング
1位:📧 メール方式
- 理由:誰でも使える、設定が最も簡単
- 所要時間:15分でセットアップ完了
2位:🔗 専用Webアプリ
- 理由:使い勝手が最高、カスタマイズ自在
- 所要時間:1時間でセットアップ
3位:📲 LINE公式
- 理由:日本人に最適、リッチなUI
- 所要時間:30分でセットアップ
💡 さらに簡単な方法
GitHub Issues を使う方法
- 毎朝 GitHub Actions が Issue を作成
- Issue に提案をコメント
- ラベルを付けるだけで投稿
# .github/workflows/daily-proposals.yml
name: Daily Blog Proposals
on:
schedule:
- cron: '0 22 * * *' # JST 7:00
jobs:
create-proposal:
runs-on: ubuntu-latest
steps:
- name: Create Issue with Proposals
uses: actions/github-script@v6
with:
script: |
const proposals = await generateProposals();
github.rest.issues.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: `📝 Blog Proposals - ${new Date().toLocaleDateString('ja-JP')}`,
body: proposals.map((p, i) =>
`## ${i+1}. ${p.title}\n${p.description}\n\n`
).join('\n'),
labels: ['blog-proposal', 'pending']
});
この方法なら:
- GitHub の通知で確認
- ラベルを「approved」に変えるだけ
- コメントでカスタマイズ指示
どの方法がお好みですか?