LINE 預填訊息連結怎麼做?oaMessage 網址格式、編碼與複製退路(2026)
客人點一下就打開 LINE、訊息已經打好,只差按送出。這篇講 oaMessage 連結的網址格式、@ 和中文怎麼編碼、手機和電腦的差別,以及內建瀏覽器擋複製時的退路,最後用賣賣的早鳥按鈕示範。
客人點一下,話已經打好了。
他只要按送出。這種連結用的是 LINE 公開的 oaMessage 網址格式:打開客人跟你官方帳號的對話框,把你準備好的一段字放進輸入框。不用申請、不用額外付費,一顆網站按鈕就裝得下。
TL;DR:格式是 https://line.me/R/oaMessage/{官方帳號 ID}/?{要帶的文字}。官方帳號 ID 開頭的 @ 要編成 %40,中文、空白、標點也要用 UTF-8 百分比編碼。手機有裝 LINE,點了會直接打開對話框;LINE 電腦版不支援這類網址,所以電腦上要另外給一條「複製文字」的路,而且複製鈕要準備好在內建瀏覽器裡失靈。還不是好友的人點了會怎樣,官方文件沒寫,我們正在用實機測。
下面先講網址怎麼組、會在哪裡壞,最後用我們自己做的開店系統「賣賣」的早鳥按鈕,示範一整套怎麼接。
oaMessage 網址長這樣
LINE 官方文件(Using LINE features with the LINE URL scheme)列了兩種寫法:
| 網址 | 點了會怎樣 |
|---|---|
https://line.me/R/oaMessage/{官方帳號 ID} | 打開跟這個官方帳號的對話框 |
https://line.me/R/oaMessage/{官方帳號 ID}/?{文字} | 打開對話框,輸入框已經填好這段文字 |
注意第二種的 /? 後面直接接文字,沒有 text= 這種參數名。
官方帳號 ID 可以用 Basic ID(@ 加一串英數字),也可以用付費的 Premium ID。ID 在 LINE 官方帳號管理後台查得到。
編碼:@ 和中文都要轉
官方文件寫得很明白:官方帳號 ID 和文字都要用 UTF-8 做百分比編碼。沒編碼的 ID 現在還能用,但已經列為不建議(deprecated),新寫的連結就照編碼的版本做。
| 原本 | 編碼後 |
|---|---|
@linedevelopers(官方範例的 ID) | %40linedevelopers |
Hi there!(官方範例的文字) | Hi%20there%21 |
我要登記早鳥:天然豆腐貓砂 6L(123456) | %E6%88%91%E8%A6%81...%EF%BC%89(一個中文字變成三組 %XX) |
組起來就是官方範例那條:https://line.me/R/oaMessage/%40linedevelopers/?Hi%20there%21。
編碼不用手算,程式裡一個函式就好:
- PHP:
rawurlencode()。賣賣用的就是這個,ID 和文字各編一次。空白會變成%20,跟官方範例一樣。 - JavaScript:
encodeURIComponent()。它會留著!、(、)這幾個符號不編,官方範例則把!編成%21。
要小心的是 PHP 的 urlencode() 和表單編碼,它們把空白變成 +。+ 在 LINE 輸入框裡會不會變回空白,我們沒測過,所以賣賣沒用它。
手機和電腦,點下去不一樣
| 情況 | 會發生什麼 | 出處 |
|---|---|---|
| 手機有裝 LINE | 自動打開 LINE,跳到對話框,文字已經在輸入框 | LINE 官方文件 |
| 手機沒裝 LINE | 開瀏覽器,請他下載 LINE | LINE 官方文件 |
| LINE 電腦版(macOS、Windows) | 不支援 LINE URL scheme | LINE 官方文件 |
| 電腦的瀏覽器 | 我們寫賣賣時的判斷:只會開一個空白分頁 | 賣賣程式註解 |
官方文件寫的支援平台只有 iOS 和 Android 的 LINE。所以這顆按鈕在電腦上等於失效,電腦版要換一套說法:把要傳的字秀出來、給複製鈕、給加好友的路,請他用手機的 LINE 送。
三種常見用法
詢問鈕:商品頁放一顆「用 LINE 問這件」,預填「我想問:品名」。客人不用想第一句要打什麼,你在聊天紀錄裡也一眼看得出他在看哪件。
「我要登記早鳥」:商品還沒開賣,先收名單。預填文字帶商品名和一組代碼,系統收到就知道誰對哪件有興趣。
「我要訂 X」:把商品名、規格先打好,客人改一下數量就能送。
這三種有一個共同點:預填的字客人可以改、可以刪,連結也不會替他按送出。要讓系統自動認,就要留一個客人改了品名也認得出的記號。賣賣的做法是在結尾放一組 6 位數代碼,系統只看這組數字。
限制:還不是好友的人點了會怎樣?
LINE 官方文件在 oaMessage 這一段,沒有寫「還不是好友」的人點了會發生什麼:對話框能不能打開、送出的訊息你的系統收不收得到,都沒有明文。我們正在用實機測,測完會回來更新這一段。
在答案出來之前,賣賣先做了兩層準備:
- 手機版小窗在「打開 LINE」下面多一行:「LINE 沒有打開的話:先加我們好友,再複製這段文字傳給我們。」旁邊就是加好友的按鈕。
- 代碼有效 30 分鐘,程式註解寫明這是留給「要先加好友、再回來送出」的客人。
另一個官方文件沒寫的是文字長度上限。賣賣把品名截在 30 個字,理由是 LINE 輸入框塞不下太長的字,客人也懶得看。
內建瀏覽器擋剪貼簿:複製鈕要準備三層
電腦上要靠「複製文字」,手機上 LINE 打不開時也要靠它。麻煩在這裡:客人常常是從 LINE、IG、FB 的連結點進你的網站,這些 App 的內建瀏覽器常常沒有剪貼簿功能(navigator.clipboard),或是有、但會拒絕。
賣賣的複製鈕一層一層往下退:
| 層 | 做法 | 按鈕顯示 |
|---|---|---|
| 1 | 用瀏覽器的剪貼簿功能(要 https 網站才有) | 已複製 |
| 2 | 失敗就退回舊方法:放一個看不見的文字框,用 execCommand('copy') 複製 | 已複製 |
| 3 | 兩條都失敗:把那段字整段選起來 | 已選取,長按複製 |
第三層的重點是按鈕講實話。複製沒成功卻顯示「已複製」,客人到 LINE 貼上才發現是空的,他會以為是自己的問題。
另外,那段字的框框加了一行 CSS(user-select: all),客人點一下就整段選起來。複製鈕全部失靈,長按也拿得到。
用賣賣示範:早鳥按鈕
賣賣微電商是我們做的開店系統。早鳥按鈕是一位業主提的需求:商品的購買鈕換成「取得早鳥」,客人用 LINE 登記,後台記下誰對哪件商品有興趣,開賣時只通知登記這件的人。
這個功能 2026 年 10 月 1 日剛上測試站,還沒有客人資料。下面只講它怎麼設計、為什麼這樣設計。
第一步:按下去,才發一組 6 位數代碼
客人按「取得早鳥」,網頁才跟伺服器要一組代碼。代碼不印在頁面上,因為商品頁有頁面快取,快取的 HTML 每個人拿到的都一樣,印進去的代碼會讓所有人拿到同一組。
發碼這支程式會寫資料,所以有三道門:只收自己網站送來的請求、只發給有開早鳥而且已上架的商品、同一個 IP 一分鐘最多 10 次。不擋的話,任何人都能把資料庫寫爆。
第二步:預填「我要登記早鳥:品名(123456)」
這段字寫成人話,沒用「早鳥 123456」這種暗號。客人在輸入框看到的是自己在說話,店長在聊天紀錄裡也看得出他登記了哪件。
系統認字有兩條規矩:
- 只認結尾括號裡的 6 位數。客人把品名改掉也沒關係,代碼本身就知道是哪件商品。
- 開頭要是「早鳥」或「我要登記早鳥」。只看數字的話,客人隨口傳一句帶 6 位數的話,像訂單編號、電話尾碼,就會被當成代碼吃掉,還算進打錯次數。
第三步:webhook 認碼、記人、免費回覆
客人按送出,LINE 把訊息透過 webhook 送到賣賣。系統做這幾件事:
- 先把代碼銷毀,再做事。一組碼只能用一次。
- 記下「這個 LINE 帳號登記了這件商品」。同一個人登記同一件第二次,不重記,回他「你已經登記過了」。
- 把這位訪客之前在網站上的瀏覽紀錄補上 LINE 身分,之後他逛網站、加購物車,分眾和購物車提醒都認得是誰。只補同一次造訪的紀錄、只補空的。
- 回一則確認訊息,預設是「已幫你登記『品名』的早鳥!開賣的第一時間會在這裡通知你。」
回覆用的是 Messaging API 的 reply。LINE 官方的計費說明寫得很清楚:push、multicast、broadcast、narrowcast 算進訊息則數,reply 不算。客人登記一次,你不用付一則訊息的錢。
碼不對的時候:
- 過期或用過:回「這組早鳥代碼已經過期或用過了。回到商品頁再按一次『取得早鳥』就好。」這則一樣被早鳥吃掉,不會落到關鍵字自動回應,讓客人收到一句不相干的罐頭話。
- 打錯太多次:同一個 LINE 帳號 10 分鐘內錯 5 次就鎖住,請他 10 分鐘後再來。
為什麼沒有多一步「確認」
賣賣另一個功能「客人碼」會多一張確認卡,因為那組碼綁的是訂單,認錯人會讓陌生人看到別人的訂單。早鳥登記的是「我對這件有興趣」,認錯的代價是名單多一個人。所以早鳥用 6 位數、30 分鐘、一次性、打錯上限來守,不多加一步把客人擋在門外。
第四步:小窗分手機和電腦
- 手機:一顆「打開 LINE,按送出就完成」,下面是 LINE 打不開時的複製退路。
- 電腦:直接寫「請用手機的 LINE 加我們好友,再把這段文字傳給我們」,下面是框起來的文字、「複製文字」和「加 LINE 好友」兩顆鈕。
手機版早鳥小窗:綠色「打開 LINE,按送出就完成」,下方是要傳的那段字、複製文字與加 LINE 好友
電腦版早鳥小窗:請客人用手機的 LINE 加好友,再把框起來的那段文字傳過來
後台看到什麼
商品編輯頁有一個「早鳥模式」開關。開著的時候這件商品真的買不到,系統擋的是購買本身,光藏按鈕的話,直接打加入購物車的網址還是買得到。
開關下面可以改登記成功的回覆文字({product}、{store}、{name} 會換成商品名、店名、客人的 LINE 名字),也看得到名單:誰、幾點登記、是不是已經封鎖。名單旁邊還會並列「按了『取得早鳥』幾次」,兩個數字的差距,就是停在「打開 LINE」那一步沒送出的人。
開賣那天,到「LINE 行銷 → 自動訊息」新增一個情境,選「做過:登記早鳥」、商品選這一件,訊息就只發給這群人。
還沒接上 LINE 官方帳號的店,按鈕會顯示「早鳥登記即將開放」,不會出現點了沒反應的按鈕。
商品編輯頁的早鳥模式:開關、登記成功時 LINE 回覆的話、已登記 5 人名單與按了幾次的提示
常見問題
Q:oaMessage 連結會自動幫客人送出嗎?
A: 不會。官方文件寫的是把文字填進輸入框,送不送由客人決定,他也可以先改內容。所以系統要能接受被改過的訊息。
Q:跟加好友連結(line.me/R/ti/p/)差在哪?
A: 依官方文件,ti/p 打開的是官方帳號的個人頁,已經是好友才會直接顯示對話;oaMessage 直接打開對話框,還能帶文字。想讓客人加好友就用前者,想讓他說一句特定的話就用後者。
Q:客人登記之後,開賣通知要錢嗎?
A: 要。登記當下的確認是 reply,不算則數;開賣那天是你主動發出去,屬於推播類,按收到的人數算進你官方帳號方案的額度。
Q:還不是好友的人可以用嗎?
A: 官方文件沒寫,我們正在用實機測。賣賣目前的小窗會同時給加好友的路,代碼也留了 30 分鐘讓客人先加好友再送。
Q:預填的文字最長可以多長?
A: 官方文件沒寫上限。賣賣把品名截在 30 個字,太長的話 LINE 輸入框塞不下,客人也懶得看。
下一步
- 要讓系統收得到客人送出的那句話,先接好 Messaging API:LINE Messaging API 怎麼申請?Channel access token 與 Channel secret 取得教學
- 名單收到了,開賣那天怎麼發:LINE 早鳥名單:開賣時只通知登記的人
- 想知道串了 API 之後,自動回覆能做到哪:LINE 自動回覆能做到哪、做不到哪
- 想要一間 LINE 已經接好、早鳥按鈕直接能開的店:mo-shop 賣賣微電商
你現在都怎麼讓客人傳出第一句 LINE?
行銷的雜事,能不能讓機器做?
提醒、通知、回購、對帳 —— 這些每天重複的動作,我們幫你看哪些現在就能自動跑。
Related Reading
延伸閱讀
LINE 官方帳號
LINE 加好友連結怎麼做?lin.ee、QR Code 與好友來源追蹤教學(2026)
LINE 加好友連結在官方帳號後台「增加好友工具」就能建,lin.ee 短連結、line.me 網址、QR Code 三種都通。難的是知道好友從哪個入口來。這篇整理官方的做法、後台看得到與看不到的部分,再用賣賣示範幫每個入口貼上來源標籤。
LINE 官方帳號
LINE Messaging API 怎麼申請?Channel access token 與 Channel secret 取得教學(2026)
要讓網站幫你發 LINE、收到「有人加好友」,都要先拿到 Messaging API 的兩組值:Channel access token 和 Channel secret。這篇用賣賣微電商當例子,從官方帳號啟用 API 一路走到貼進後台、測試連線。
LINE 官方帳號
LINE 官方帳號推播費用怎麼算?三種方案、則數計算與每月帳單試算(2026)
LINE 推播按「收到的人數」扣則數,發給 500 個好友就是 500 則。這篇整理台灣輕用量、中用量、高用量三個方案(含 2026/11/1 調價),附一張帶入好友數就能算的月帳單試算表,並說明分眾窄發為什麼比較省。