---
name: send-to-my-line
description: 把「任何內容」傳到自己的 LINE(自我推播 / 通知)。適用任何情境:提醒、每日摘要、代辦清單(如 Notion)、爬到的網頁內容、整理好的筆記、排程/CI 結果、AI 跑完的產出…只要想「丟一段訊息到自己 LINE」就用這個。涵蓋(1)一次性的 LINE Messaging API 設定——由 AI 開瀏覽器逐步操作、人類只在「登入/CAPTCHA/建立帳號/同意條款/手機加好友」時接手、(2)透過 LINE broadcast 端點把內容發出去。觸發詞:「傳到我的 LINE」「send to my LINE」「LINE 通知我」「把…丟到 LINE」「push X to LINE」。
---

# 把任何東西傳到自己的 LINE(自我推播)

把**任意一段內容**,透過 **LINE Messaging API 的 broadcast(廣播)** 發到使用者自己的 LINE。

選 broadcast 是因為它**不需要 userId**:廣播會發給「所有加這個官方帳號好友的人」,個人自用時你就是唯一的好友 ＝ 等於傳給自己。最省事。

> **這個 Skill 只負責「把內容送到 LINE」這一段。** 內容從哪來、怎麼整理,由呼叫它的情境決定(見下方範例)。

---

## 內容來源(任意,以下只是例子)

- 📋 代辦清單 / 提醒(例:用 Notion MCP 讀出今天的代辦)
- 📰 爬蟲或網頁擷取的重點(例:某頁面更新通知)
- 🧾 每日/每週摘要、報表
- 🤖 AI 跑完的產出、長任務完成通知
- 🔔 排程或 CI/腳本的結果

→ 不管來源是什麼,最後都收斂成「一段文字(可含 emoji/換行)」,丟進下面的廣播端點。

---

## 一次性前置:接好 LINE Messaging API(難點,本 Skill 重點)

**目標:拿到一組「長期 channel access token」+ 讓使用者把機器人加為好友 → 之後就能無限次廣播。**

> 設定一次就好;拿到 token 後,日常推播完全不用再碰瀏覽器。

### 給 AI driver 的執行原則(重要)

- **你(AI)負責**:開瀏覽器、導航、填「非敏感」欄位、截圖、最後呼叫 API。
- **使用者必須親自做(你絕不可代做,遇到就停下、講清楚、等他完成)**:
  1. 登入帳號密碼
  2. reCAPTCHA / 圖形驗證
  3. 建立帳號(按下建立官方帳號的「完成」)
  4. 同意任何條款 / 資料使用同意書
  5. 用**手機**把機器人加為好友
- token、channel secret、email **一律不入版控、不貼公開處**;存到 `*.local.env` 並 gitignore。
- (若需要做成教學)每個關鍵步驟截圖存到 `screenshots/`,檔名用 `NN-描述.png`。

### ⚠️ 必知前提(2024-09 後的規則變更)
> **LINE Developers Console 已「不能」直接建立 Messaging API channel。**
> 必須先建立「LINE 官方帳號(OA)」→ 在 LINE Official Account Manager 啟用 Messaging API → channel 才會出現。
> 這就是大多數新手卡關的點。

### 最短路徑(逐步,含每步落點 URL)

1. **開 Console**:`https://developers.line.biz/console/`
   - 未登入會導向 `https://account.line.biz/login`。請使用者用「**商用帳號**(email)」或「**LINE 帳號**」登入。**← 使用者接手**(可能有 CAPTCHA / 裝置 OTP)。

2. **建立 Provider**:Console 首頁點「**Create**」→ 命名(例 `My-LINE-Push`)→ Create。

3. **嘗試建立 Messaging API channel**:進 Provider → 點「**Create a Messaging API channel**」
   - 會看到公告:「*It's no longer possible to create Messaging API channels directly...*」
   - 點頁面上的「**Create a LINE Official Account**」→ 開新分頁到 `https://entry.line.biz/form/entry/unverified`。

4. **填官方帳號表單**(`entry.line.biz`):
   - 帳號名稱(公開顯示名,如「我的推播」)、email(通常已自動帶入)、公司所在國家/地區、業種(隨意)。
   - **reCAPTCHA → 確定 → 確認頁按「完成」← 使用者接手**(建立帳號+同意條款)。
   - 完成頁會出現**基本 ID `@xxxxxxx`** 與 OA Manager 連結。雖然頁面寫「將自動加入你的 LINE 好友」,但實務上好友數常仍為 0,**第 8 步仍要手動加好友**。

5. **記下**基本 ID(`@xxxx`)。OA Manager 網址即 `https://manager.line.biz/account/@xxxx`。

6. **啟用 Messaging API**(OA Manager):開 `https://manager.line.biz/account/@xxxx/setting/messaging-api`
   - 首次進入會跳「**資料使用同意書**」→ **使用者按「同意」**。
   - 點「**啟用Messaging API**」→ 在「選擇服務提供者」選**剛建立的 Provider**(`My-LINE-Push`)→ **使用者按「同意」(API 服務條款)** → 確認啟用。
   - 啟用後顯示 **Channel ID** 與 **Channel secret**(secret 為機密,但廣播用不到它)。

7. **簽發長期 token**(Developers Console):開 `https://developers.line.biz/console/channel/{channelId}/messaging-api`
   - 找到「**Channel access token (long-lived)**」→ 點「**Issue**」→ 取得長期 token。
   - 🔴 **token 是最高機密**:存到 `LINE_CHANNEL_ACCESS_TOKEN`(環境變數或 `*.local.env`),勿入版控、勿貼公開。
   - **Webhook 不需要**(我們只廣播、不接收訊息,URL 留空即可)。

8. **加好友(使用者用手機)**:在 LINE 搜尋基本 ID `@xxxx` 加好友,或掃 Messaging API 分頁上的 **QR code**。
   - 廣播才有對象;不加好友 → 廣播送出成功(200)但沒人收到。

### 憑證驗證(不發訊息,安全)

```bash
# 驗證 token 有效、看 bot 身分
curl -s -H "Authorization: Bearer $LINE_CHANNEL_ACCESS_TOKEN" https://api.line.me/v2/bot/info
# 例:{"basicId":"@xxxx","displayName":"...","chatMode":"bot"}

# 看本月免費額度
curl -s -H "Authorization: Bearer $LINE_CHANNEL_ACCESS_TOKEN" https://api.line.me/v2/bot/message/quota
# 例:{"type":"limited","value":200}
```

---

## 發送目標(不綁腳本 — 交給執行的 AI 自行決定怎麼呼叫)

**目標:把整理好的內容文字,透過「廣播」發給官方帳號的所有好友(=使用者自己)。**

| 項目 | 內容 |
|------|------|
| 端點 | `POST https://api.line.me/v2/bot/message/broadcast` |
| Headers | `Authorization: Bearer {LINE_CHANNEL_ACCESS_TOKEN}`、`Content-Type: application/json` |
| Body | `{"messages":[{"type":"text","text":"<整理好的內容>"}]}` |
| 限制 | `messages` 最多 5 則;單則 text 上限 5000 字;每月受免費 quota 限制 |
| 成功 | HTTP `200` + 空 JSON `{}` |

> **不只純文字**:`messages` 也支援圖片(`image`)、貼圖(`sticker`)、Flex 等訊息類型;預設用 `text` 最簡單,需要再查 LINE 訊息物件規格。
>
> **broadcast vs push**:broadcast 不需 userId、傳給自己最省事。若要發給「特定他人/群組」改用 `POST /v2/bot/message/push`(需 userId,須額外取得)。

---

## 端到端流程(每次「把東西傳到 LINE」時)

1. **取得內容**:依當下情境取得要傳的東西(讀 Notion / 爬網頁 / 產生摘要 / 任務結果…)。
2. **整理**:收斂成一段文字(可加 emoji、日期、分組;注意 5000 字上限)。
3. **取憑證**:讀 `LINE_CHANNEL_ACCESS_TOKEN`。
4. **送**:呼叫 broadcast 端點。
5. **回報**:HTTP 200 = 成功。

---

## 安全 / 邊界
- token / channel secret / email 不入版控、不貼公開處。
- 登入 / CAPTCHA / 建帳號 / 同意條款 / 加好友 = **使用者親自做**。
- 若把過程做成教學,含機密的截圖(token、channel secret、email)發布前務必打碼或不附原圖。
