Build LINE API with AutoHotkey

user-pic
Vote 0 Votes

本篇不是講 carpedm20 用 Python 寫的那個非官方 LINE API
那個非官方的 API 似乎被 LINE 封鎖了, 2015-08-26 開始就不能使用
替代方案是用電腦版 LINE + AutoHotkey 自己做
簡單講就是把使用電腦版 LINE 的動作, 寫成一個 AutoHotkey Script , 帶參數進去就成了土法 API

Script 如下, 其中的座標要用 AutoIt3 Window Spy 進行調整成適合自己的環境, 每台電腦狀況不太一樣
CoordMode, Mouse, Screen ; 螢幕絕對座標
MouseClick, left, 944, 754, 2 ; 點兩下 LINE tray icon
CoordMode, Mouse, Relative ; 視窗相對座標
Sleep, 400
MouseClick, left, 70,66 ; 點「好友」圖示
MouseClick, left, 240,112 ; 點到搜尋欄
Send {BS 20}%1% ; 送出 20 個 Backspace (刪除上一個收訊者名稱) 及收訊者名稱
Sleep, 200
MouseClick, left, 100, 190, 2 ; 滑鼠到收訊者名稱點兩下
Sleep, 200
Send %2%{Enter} ; 輸入訊息及 Enter 送出
Sleep, 600 ; 這邊的停頓很重要, 停太少時間會導致訊息還沒送出就關閉視窗
Send ^w ; 關閉聊天視窗
return

存成 SendMessage.ahk
送訊息 SendMessage.ahk {個人或群組名稱} {訊息}
例如: SendMessage.ahk Pank 測試

這個方法的優點是不會被封鎖, 缺點是送訊息的速度沒辦法太快, 最快要 1 秒多
LINE 有改版時需留意 Layout 是否有變, 可能需要微調座標

進階一點可以用 Apache + PHP 弄個 API 遠端呼叫
訊息量多的話還需要弄個 Queue 來管理, 才不會有兩筆 Request 同時進來時,
造成 AutoHotkey Script 同時執行或執行時間有重疊而游標錯亂

About this Entry

This page contains a single entry by Pank published on August 26, 2015 4:23 PM.

Unison - Bi-directional sync tool was the previous entry in this blog.

VMware P2V is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Monthly Archives