# 能<span style="color: gold">使用變數</span>的
# LINE 訊息推送小工具
https://lihi1.com/3KvK7
Note:
# 事前準備
1. 取得預先填入的連結:`https://docs.google.com/forms/d/e/1FAIpQLScq1UfRCy_UP6NC7XygkcL2NVk3dRPlMQmAJUN38TcJempfXw/viewform?usp=pp_url&entry.1798098912=123`
2. 去新增短網址:`https://docs.google.com/forms/d/e/1FAIpQLScq1UfRCy_UP6NC7XygkcL2NVk3dRPlMQmAJUN38TcJempfXw/viewform?usp=pp_url&entry.1798098912={lihi}`
3. lihi 連結:`https://lihi1.com/INAy2`
4. 去小幫手設定 dialogflow 回應:`https://lihi1.com/INAy2/${{userId}}`
5. [表單回應](https://docs.google.com/spreadsheets/d/1aMzQQjcTYjheXPZeOZMUHZCOIizqI4U4hI4OCi9Wu4k/edit#gid=1474485640)
---
## Who am I?
<table class="about-me">
<tr>
<td><img src="https://www.gravatar.com/avatar/8d9b432d861e4ac0e40954a800ae90a1?s=2048" class="avatar"></td>
<td>
<ul>
<li>戴均民</li>
<li>現職 <span style="color: #e2231a">微程式資訊</span></li>
<li>後端工程師</li>
<li><a href="https://github.com/taichunmin/" target="_blank"><i class="fa fa-fw fa-github"></i>taichunmin</a></li>
</ul>
</td>
</tr>
</table>
<style>
img.avatar {
border-radius: 50%;
width: 300px;
}
</style>
---
<table class="about-me">
<tr>
<td><img src="https://i.imgur.com/BCviB4l.png" style="height: 250px; display: block; max-height: none; max-width: none;"></td>
<td>
<h2>如何收到 DEMO 訊息</h2>
<ol>
<li>加入 YouBike 小幫手</li>
<li>傳送訊息「<span style="color: gold">push demo</span>」</li>
<li>填寫表單</li>
<li>等我用工具發送訊息</li>
</ol>
</td>
</tr>
</table>
---
# 緣起
## 為了舉辦抽獎活動
---
![](https://i.imgur.com/LpoN8bg.jpg =x600)
---
## 為了確認身份
## 要憑截圖領獎
---
![](https://i.imgur.com/qXcYyTw.jpg =x600)
---
## 遇到的問題
1. 截圖中要有使用者暱稱
2. 要傳給指定的使用者
---
## 流程圖
![](https://i.imgur.com/mnTppgA.png =x500)
Note:
```mermaid
graph TD
a1[準備測試名單]-->b["Google 試算表<br>檔案->發佈到網路->.csv"]
a2[準備正式名單]-->b
b-->d["撰寫訊息 (並加上變數)"]
d-->e[填到推送工具]
e-->f[按下推送訊息]
```
---
# 準備名單
#### 把 CSV 當作資料庫,第一行當作變數名稱
![](https://i.imgur.com/7caJu8F.png)
---
# 訊息的變數處理
### lodash 樣板函式 <span style="color: gold">_.template</span>
---
![](https://i.imgur.com/a3lse40.png)
---
## 訊息推送工具網址
<https://taichunmin.idv.tw/pug/line-push-template.html>
---
<table class="about-me">
<tr>
<td><img src="https://i.imgur.com/BCviB4l.png" style="height: 250px; display: block; max-height: none; max-width: none;"></td>
<td>
<h2>如何收到 DEMO 訊息</h2>
<ol>
<li>加入 YouBike 小幫手</li>
<li>傳送訊息「<span style="color: gold">push demo</span>」</li>
<li>填寫表單</li>
<li>等我用工具發送訊息</li>
</ol>
</td>
</tr>
</table>
---
## 由於 LINE API 不允許
## <span style="color: gold">跨來源資源共用</span>
## <span style="color: gold">(CORS)</span>
[MDN 文件連結](https://developer.mozilla.org/zh-TW/docs/Web/HTTP/CORS)
---
## 建立 Cloud Function
* 名稱: `demo-20191211`
* 分配的記憶體: `128 MB`
* 觸發條件: `HTTP`
* 勾選「允許未經驗證的叫用」
* 執行階段: `Node.js 10`
* [Cloud Function 程式碼](https://gist.github.com/taichunmin/5f1964d914d750f0ed7e6dff27ecf5ea)
---
## Google 試算表重新發布
## 有五分鐘一次的限制
---
## 建議直接新增
## 一個新的工作表
---
# Q & A
{"metaMigratedAt":"2023-06-15T01:40:12.413Z","metaMigratedFrom":"YAML","title":"能使用變數的 LINE 訊息推送工具","breaks":true,"contributors":"[{\"id\":\"0d9a5e06-1f92-4142-b9df-fed4c8873573\",\"add\":5312,\"del\":1645}]"}