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開瀏覽器,請他下載 LINELINE 官方文件
LINE 電腦版(macOS、Windows)不支援 LINE URL schemeLINE 官方文件
電腦的瀏覽器我們寫賣賣時的判斷:只會開一個空白分頁賣賣程式註解

官方文件寫的支援平台只有 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 送到賣賣。系統做這幾件事:

  1. 先把代碼銷毀,再做事。一組碼只能用一次。
  2. 記下「這個 LINE 帳號登記了這件商品」。同一個人登記同一件第二次,不重記,回他「你已經登記過了」。
  3. 把這位訪客之前在網站上的瀏覽紀錄補上 LINE 身分,之後他逛網站、加購物車,分眾和購物車提醒都認得是誰。只補同一次造訪的紀錄、只補空的。
  4. 回一則確認訊息,預設是「已幫你登記『品名』的早鳥!開賣的第一時間會在這裡通知你。」

回覆用的是 Messaging API 的 reply。LINE 官方的計費說明寫得很清楚:push、multicast、broadcast、narrowcast 算進訊息則數,reply 不算。客人登記一次,你不用付一則訊息的錢。

碼不對的時候:

  • 過期或用過:回「這組早鳥代碼已經過期或用過了。回到商品頁再按一次『取得早鳥』就好。」這則一樣被早鳥吃掉,不會落到關鍵字自動回應,讓客人收到一句不相干的罐頭話。
  • 打錯太多次:同一個 LINE 帳號 10 分鐘內錯 5 次就鎖住,請他 10 分鐘後再來。

為什麼沒有多一步「確認」

賣賣另一個功能「客人碼」會多一張確認卡,因為那組碼綁的是訂單,認錯人會讓陌生人看到別人的訂單。早鳥登記的是「我對這件有興趣」,認錯的代價是名單多一個人。所以早鳥用 6 位數、30 分鐘、一次性、打錯上限來守,不多加一步把客人擋在門外。

第四步:小窗分手機和電腦

  • 手機:一顆「打開 LINE,按送出就完成」,下面是 LINE 打不開時的複製退路。
  • 電腦:直接寫「請用手機的 LINE 加我們好友,再把這段文字傳給我們」,下面是框起來的文字、「複製文字」和「加 LINE 好友」兩顆鈕。

手機版早鳥小窗:綠色「打開 LINE,按送出就完成」,下方是要傳的那段字、複製文字與加 LINE 好友手機版早鳥小窗:綠色「打開 LINE,按送出就完成」,下方是要傳的那段字、複製文字與加 LINE 好友

電腦版早鳥小窗:請客人用手機的 LINE 加好友,再把框起來的那段文字傳過來電腦版早鳥小窗:請客人用手機的 LINE 加好友,再把框起來的那段文字傳過來

後台看到什麼

商品編輯頁有一個「早鳥模式」開關。開著的時候這件商品真的買不到,系統擋的是購買本身,光藏按鈕的話,直接打加入購物車的網址還是買得到。

開關下面可以改登記成功的回覆文字({product}、{store}、{name} 會換成商品名、店名、客人的 LINE 名字),也看得到名單:誰、幾點登記、是不是已經封鎖。名單旁邊還會並列「按了『取得早鳥』幾次」,兩個數字的差距,就是停在「打開 LINE」那一步沒送出的人。

開賣那天,到「LINE 行銷 → 自動訊息」新增一個情境,選「做過:登記早鳥」、商品選這一件,訊息就只發給這群人。

還沒接上 LINE 官方帳號的店,按鈕會顯示「早鳥登記即將開放」,不會出現點了沒反應的按鈕。

商品編輯頁的早鳥模式:開關、登記成功時 LINE 回覆的話、已登記 5 人名單與按了幾次的提示商品編輯頁的早鳥模式:開關、登記成功時 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 輸入框塞不下,客人也懶得看。

下一步

你現在都怎麼讓客人傳出第一句 LINE?

行銷的雜事,能不能讓機器做?

提醒、通知、回購、對帳 —— 這些每天重複的動作,我們幫你看哪些現在就能自動跑。

加 LINE 聊聊你現在卡在哪 用寫的說明現況

先聊現況,不一定要做網站。

MO DESIGN STUDIO

我們專注品牌網站設計、行銷著陸頁與整合式 CMS 流程,協助團隊打造有感的線上體驗。

← 返回部落格