# LineNotify
###### tags: `LINE` `API`
## API
* [POST]
* https://notify-api.line.me/api/notify
* 發送訊息通知給使用者或使用者群組。當服務整合時需要透過LINE通知用戶時,透過訪問權杖(Access Token)傳送及時訊息。
## 限制
* 1000/hr 一小時可以送1000筆資料
* 50/hr 一小時可以送50張圖片
## 參數

## 步驟
1. 取得一組**權杖** `Bearer Token`



2. 使用 Postman 打API

## Postman 呼叫 Notify API 介紹
1. 複製 Sample 的 curl 命令
```clike
$ curl -X POST -H 'Authorization: Bearer <access_token>' -F 'message=foobar' \
https://notify-api.line.me/api/notify
{"status":200,"message":"ok"}
```
2. 將 API 匯入到 Postman
- 使用 `Import` 功能(或按 `Ctrl` + `O`)

- 貼入 `curl` 程式碼片段,並去除 `$` 符號

3. 將 AccessToken 改成你的訪問權杖 (2種做法)
1. 直接修改 Headers 裡頭的設定

2. 設定 Authorization, 並刪除 Header (Authorization Bearer)

4. (Options) 基於資訊安全考量,敏感性資料建議可以設定為參數(Parameter)
- 使用 `{{Param}}` 的方式,將參數帶入請求
- 請參考: [Using variables - Postman](https://learning.postman.com/docs/sending-requests/variables/)
- 範例:
1. 設定 Collections 的 Parameters

2. 使用 Parameter 呼叫 API

5. 發出請求


## 使用 C# 呼叫 Notify API 介紹
此處借用並參考了余小章大大的套件架構,請參考 [Ref2](#參考)
主要架構如下:

- **LineNotifyProvider** - 提供 LineNotify 的服務
- **LineNotifyProviderException** - LINE Notify 的異常類
- **NotifyRequest** - LINE Notify 的請求 (文字\貼圖\網路圖片 訊息)
- **NotifyResponse** - LINE Notify 的請求回應
- **NotifyWithImageRequest** - LINE Notify 的請求 (上傳圖片檔案)
> Github 專案位置:[LineNotify.Utils](https://github.com/wish98540/LineNotify.Utils)
## 使用方法
### 是 文字/貼圖/網路圖片 訊息
```csharp
var resuqst = new NotifyRequest
{
AccessToken = token,
Message = message,
StickerPackageId = stickerPackageId,
StickerId = stickerId,
ImageThumbnailLink = imageLink,
ImageLink = imageLink,
};
var response = await provider.NotifyAsync(resuqst, CancellationToken.None);
```
### 是 圖片訊息
```csharp
var resuqst = new NotifyWithImageRequest
{
AccessToken = token,
Message = message,
FilePath = image
};
var response = await provider.NotifyAsync(resuqst, CancellationToken.None);
```
## 參考
1. [LINE Notify API Document - LINE Notify](https://notify-bot.line.me/doc/en/)
2. [通過 LINE Notify 發送訊息 - 余小章@大內殿堂](https://dotblogs.com.tw/yc421206/2021/07/14/via_line_notify_send_message_stiker_and_image)
3. [實作 Line Notify 通知服務 (1) - POY CHANG](https://blog.poychang.net/line-notify-1-basic/)
4. [實作 Line Notify 通知服務 (2) 搭配 ASP.NET Web API - POY CHANG](https://blog.poychang.net/line-notify-2-use-web-api/)