mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-11-01 03:49:24 +08:00 
			
		
		
		
	Merge pull request #227 from Ponkhy/line-messenger
Added Line Messenger Notification Service
This commit is contained in:
		| @@ -389,6 +389,53 @@ class Notification { | ||||
|             } catch (error) { | ||||
|                 throwGeneralAxiosError(error) | ||||
|             } | ||||
|         } else if (notification.type === "line") { | ||||
|             try { | ||||
|                 let lineAPIUrl = "https://api.line.me/v2/bot/message/push"; | ||||
|                 let config = { | ||||
|                     headers: { | ||||
|                         "Content-Type": "application/json", | ||||
|                         "Authorization": "Bearer " + notification.lineChannelAccessToken | ||||
|                     } | ||||
|                 }; | ||||
|                 if (heartbeatJSON == null) { | ||||
|                     let testMessage = { | ||||
|                         "to": notification.lineUserID, | ||||
|                         "messages": [ | ||||
|                             { | ||||
|                                 "type": "text", | ||||
|                                 "text":"Test Successful!" | ||||
|                             } | ||||
|                         ] | ||||
|                     } | ||||
|                     await axios.post(lineAPIUrl, testMessage, config) | ||||
|                 } else if (heartbeatJSON["status"] == 0) { | ||||
|                     let downMessage = { | ||||
|                         "to": notification.lineUserID, | ||||
|                         "messages": [ | ||||
|                             { | ||||
|                                 "type": "text", | ||||
|                                 "text":"UptimeKuma Alert: [🔴 Down]\n" + "Name: " + monitorJSON["name"] + " \n" + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"] | ||||
|                             } | ||||
|                         ] | ||||
|                     } | ||||
|                     await axios.post(lineAPIUrl, downMessage, config) | ||||
|                 } else if (heartbeatJSON["status"] == 1) { | ||||
|                     let upMessage = { | ||||
|                         "to": notification.lineUserID, | ||||
|                         "messages": [ | ||||
|                             { | ||||
|                                 "type": "text", | ||||
|                                 "text":"UptimeKuma Alert: [✅ Up]\n"  + "Name: " +  monitorJSON["name"] + " \n" + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"] | ||||
|                             } | ||||
|                         ] | ||||
|                     } | ||||
|                     await axios.post(lineAPIUrl, upMessage, config) | ||||
|                 } | ||||
|                 return okMsg; | ||||
|             } catch (error) { | ||||
|                 throwGeneralAxiosError(error) | ||||
|             } | ||||
|         } else { | ||||
|             throw new Error("Notification type is not supported") | ||||
|         } | ||||
|   | ||||
| @@ -26,6 +26,7 @@ | ||||
|                                 <option value="lunasea">LunaSea</option> | ||||
|                                 <option value="apprise">Apprise (Support 50+ Notification services)</option> | ||||
|                                 <option value="pushbullet">Pushbullet</option> | ||||
|                                 <option value="line">Line Messenger</option> | ||||
|                             </select> | ||||
|                         </div> | ||||
|  | ||||
| @@ -383,6 +384,26 @@ | ||||
|                                 More info on: <a href="https://docs.pushbullet.com" target="_blank">https://docs.pushbullet.com</a> | ||||
|                             </p> | ||||
|                         </template> | ||||
|  | ||||
|                         <template v-if="notification.type === 'line'"> | ||||
|                             <div class="mb-3"> | ||||
|                                 <label for="line-channel-access-token" class="form-label">Channel access token</label> | ||||
|                                 <input id="line-channel-access-token" v-model="notification.lineChannelAccessToken" type="text" class="form-control" required> | ||||
|                             </div> | ||||
|                             <div class="form-text"> | ||||
|                                 Line Developers Console - <b>Basic Settings</b> | ||||
|                             </div> | ||||
|                             <div class="mb-3" style="margin-top: 12px;"> | ||||
|                                 <label for="line-user-id" class="form-label">User ID</label> | ||||
|                                 <input id="line-user-id" v-model="notification.lineUserID" type="text" class="form-control" required> | ||||
|                             </div> | ||||
|                             <div class="form-text"> | ||||
|                                 Line Developers Console - <b>Messaging API</b> | ||||
|                             </div> | ||||
|                             <div class="form-text" style="margin-top: 8px;"> | ||||
|                                 First access the <a href="https://developers.line.biz/console/" target="_blank">Line Developers Console</a>, create a provider and channel (Messaging API), then you can get the channel access token and user id from the above mentioned menu items. | ||||
|                             </div> | ||||
|                         </template> | ||||
|                     </div> | ||||
|                     <div class="modal-footer"> | ||||
|                         <button v-if="id" type="button" class="btn btn-danger" :disabled="processing" @click="deleteConfirm"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user