/Telegram_link_Line

用Telegram來收發Line的訊息,use telegram to Send and receive messages(from Line)。 或者把它當作Line的訊息備份也是可啦 😛

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

Telegram_link_Line

用 Telegram 來收發 Line 的訊息。
use telegram to Send and receive messages(from Line).

或者把它當作 Line 的訊息備份也是可啦 😛

支援 Telegram、Line 個人及群組
1對1、多對1、1對多、多對多 的訊息傳遞。

此為針對 v3.6 的 README。
如果是 Telegram_Bot 新手推薦看完 這個影片後在來使用。

如果想要獲取更新資訊,可以加入這個頻道 https://t.me/TG_link_Line


目錄(Index)

  1. 功能 (Features)
  2. 實際情況截圖 (Screenshot)
  3. 自定義語言包說明 (Custom language pack description)
  4. 部署教學 (Installing)
  5. 注意事項 (Precautions)
  6. 程式說明 (Code Introduction)
  7. 版本資訊 (Version)
  8. 常見問答 (Q&A)
  9. 贊助(Donate)
  10. 作者 (Author)

功能(Features)

功能 V2 V3 V3.1 V3.2 V3.3 V3.4 V3.5 V3.6
文字 ✓(註4) ✓(註4) ✓(註4)
貼圖 僅Line發給TG ✓(註1) ✓(註1) ✓(註3) ✓(註3) ✓(註3) ✓(註3)
照片 僅TG發給Line
影片
錄音 僅Line發給TG
位置
檔案 僅Line發給TG 僅Line發給TG
GIF ✓(註2) ✓(註2) ✓(註2) ✓(註2) ✓(註2) ✓(註2)
TG_video_note
知道誰發言
針對回復
房間分類
獨立房間
關鍵字提醒
訊息時間
自訂語言包
自訂時區
知道Line_bot異動
知道Line群人員異動
/tryget_XXX 功能
🍭變換房位
🆗設定提示
🎨傳圖設定
顯示Line房間名稱
支援V8
  • V2、V3有時會不知道是誰發言是因為對方版本不夠新。
  • 註1:目前確定 "安卓的line版本8.5.3" 可以正常看貼圖,"Windows的line版本 5.10.0.1789" 則無法,其他未知。
  • 註2:僅TG發給Line,LINE發送到TG僅會收到GIF的第一格的畫面。
  • 註3:目前不支援 TG 的動圖。 支援Line動圖傳至 TG。 TG 傳送貼圖至Line會先去我的伺服器轉檔,若覺不妥可自架。
  • 註4:支援 TG → Line 傳送文字格式(粗體、斜體、刪除線、程式碼、連結) 。

Screenshot

Imgur

Imgur

獨立房間(升級房間) + ☀️ 顯示發送者:
影片連結點這裡(mp4 version)
Imgur

關鍵字提及:
(在 "🔧 更多設定" 內)
Imgur

訊息時間:
(在 "🔧 更多設定" 內)
Imgur

支援 粗體、斜體、連結 Imgur


自定義語言包說明(Custom language pack description)

自訂語言包:
在 "Telegram_link_Line(version3)/Languages" 中有 "Native(zh-tw).gs" 這個原生繁中語言包,其中 可修改 的內容如圖反白區域。
(修改後記得按下 "新增發布" 且在TG端 /debug 才能變更成功)
對了 如果你覺得你自訂的語言包不錯,可以pm我或自行pull請求來上傳。
Imgur

其屬性及內容:

"":{ //物件名稱
  "type": "to_Telegram",     
  //^ "to_Line"、"to_Telegram"、"command(Telegram)"、"to_Telegram(only_text)"
  "text": "" or ['',''],   
  //^ 自定義文字內容 如有像 {0} 這種東西代表會有引入的文字 你也可以完全不引入
  //^ 如果形式是['','']則陣列內的內容會自動串接成一字串。
  "notification": false,  //不通知? true or false
  "parse_mode":""  //送出文字模式 "HTML" or "Markdown" or ""
},

像是這個 {0}的用法
Imgur

鍵盤內容也可自訂
Imgur


部署教學 (Installing)

其他人的教學

企鵝做了一個非常詳細的圖文教學(萬分感謝 m(_ _)m ),但是此教學目前過期,不過創建LINEbot的部分是能用的,另外就是這個版本升級房間時不再使用新的bot,轉成用"新群組"替代!


部屬教學影片(Install teach video)

Telegram_link_Line部屬教學影片
1年半後終於生出來ㄌ~
請先看影片資訊欄來了解食用方式。


準備

需要使用者申請 Telegram_bot 跟 Line_bot(Messaging API)

需有一google帳號並在其中創建:

Imgur

事前聲明:下列4個步驟的檔案必須在同一個google帳號下,或者有存取權,bot才會正常運作。

  1. 一個doc檔,並將v3中的"doc.gs"內容複製上去。

  2. 一個sheet檔

    • 在sheet中新增5個分頁(page):
      "Debug"、"Log"、"紀錄發送的訊息"、"Line訊息區"、"JSON備份"
      說明圖 (上方文字請用複製比較保險)
    • 其中 "Line訊息區" 在其"A1"中填入 "[0,0]" (字串),然後選取所有儲存格的格式設為字串(純文字)。
      說明圖
  3. 一個資料夾(用來放來自Line的媒體),推薦名稱叫 "download_from_line"(如果Google空間爆了bot會罷工喔,一般帳號有15G應該還好,如果是這個bot的東西占滿空間可以去"自己的TGbot"->"更多設定"->"丟棄舊檔"來丟到垃圾桶)

  4. 如下圖,確保V8是啟動狀態,要有 "停用由 Chrome V8 技術..." 在上面
    (如果是新版的IDE,在左邊齒輪中勾選 "啟用 Chrome V8 執行階段")
    Imgur

  5. 三個gs檔(google apps script),並將v3其中的"Telegram_link_Line.gs"的內容複製在一開始給你的"程式碼"區內。
    Imgur 複製完後按下左上角的 "檔案" -> "新增" -> "指令碼檔案" -> 輸入你要的名稱(推薦叫"baseANDtest") -> 將"baseANDtest.gs"內容複製上去並填上資訊(註一)
    Imgur


Imgur

Imgur

Imgur

上面填的資訊正常來說最後應該跟這張圖呈現得差不多 Imgur

再一次 按下左上角的 "檔案" -> "新增" -> "指令碼檔案" -> 輸入你要的名稱(推薦叫"Languages") -> 將"Native(zh-tw).gs"內容複製上去

Imgur

然後請如下操作:

  • 接下來按下左上角的
  • "發佈" ->
  • "部屬為網路應用程式" ->
  • 專案版本選 "新增" (一定要記得!!!) ->
  • 將應用程式執行為 改成"我" ->
  • 具有應用程式存取的使用者 改成"任何人甚至匿名使用者" ->
  • 確定(or更新)(註二) ->
  • 將他給你的網址複製起來,並設定Telegram和Line的bot Post到該網址。(註三)
  • CP()設定計時器 每24小時一次 (<-非必要,以防萬一用。)(用來備份整個doc)
    說明圖1說明圖2說明圖3說明圖4
  • 執行 up_version(),如說明圖,很重要!(考試不會考:p

Telegram bot 需要新增四個指令:

  main - 開啟主選單
  exit - 離開對話
  debug - 重生資料(bot壞掉時用)(不會讓房間不見)
  allread - 全部已讀
  help - 獲取所有指令說明
  • @BotFather 對話 ->
  • 然後 /mybots ->
  • 選你的 bot ->
  • 在進去 "edit Bot" ->
  • "edit commands" ->
  • 貼上上方指令並送出 ->
  • 完成!
    ps' /allread、/debug這兩個指令也可以移到bot的About裡面
    bot的About

Telegram bot 需要關閉隱私模式:

不然升級房間後會有沒接收到訊息的問題。

@BotFather關閉掉隱私模式。

步驟:

  • /mybos
  • (選擇你的bot)
  • Bot Settings
  • Group Privacy
  • turn off

此時上面的文字應該是會改成向類似這樣 "Privacy mode is disabled for (bot 名稱) (bot的username)."


  • 註一

    doc和sheet的ID在網址中,例如網址: https://docs.google.com/spreadsheets/d/1vp35X4AfgP2mGLib0PZQ0NLaw_Ur0PSD_0rjgbwOfx/edit#gid=0

    那ID就是"1vp35X4AfgP2mGLib0PZQ0NLaw_Ur0PSD_0rjgbwOfx" (介於 "d/" 跟 "/edit" 之間)

    不知道自己的Telegram ID可以在Telegram中找 @you_id_bot 問。

    然後關於gs文件中第7行的 "Line_id"、第8行的 "CHANNEL_ACCESS_TOKEN"在如下圖line的後台中。
    Imgur

  • 註二

    第一次會要求權限,同意就好。

  • 註三

    Telegram用

    "https://api.telegram.org/bot<token>/setWebhook?url=<https://XXX>&max_connections=1"

    (這個格式("<token>"改成你的bot token 跟 "url="後面接gs專案網址 ))

    EX:    
      token = "123123:ZFDGFG"    
      url   = "https://XXX"     
    那網址就是:    
    "https://api.telegram.org/bot123123:ZFDGFG/setWebhook?url=https://XXX&max_connections=1"    

    沒有 "<" 跟 ">",請務必把這兩個符號刪掉!

    (設定Webhook的方式就是將你改好的網址丟到任一瀏覽器上,並按Enter送出,如果成功會回你 "Webhook was set" 或 "Webhook always set")

    Line則要到後台改(長這樣)

  • NOTE:
    你必須先跟你的機器人對話過他才能傳訊息給你。
    如有出現問題請記得看一下 sheet 的 log !!!

  • NOTE2:
    現在Line伺服器在群組中有時會發userID(須對方line app更新)
    所以有些知道是誰說的,有些不知道,我現在也很困擾。


注意事項 (Precautions)

  1. 如果你的GCP專案列表出現不明的專案請先不要砍,這個專案可能就是這個bot用的,如果砍了...
    這裡有補救的方式......
    by我的血淚教訓。

  2. 因為 Line 官方在 2019/06/10 後便將所有的 bot 改成新的方案
    因此開始有人次的限制!!!請務必注意這一點!!!!!
    (只好安慰自己說起碼拿來當備份還算實用...

  3. 目前我還會繼續更新這個專案,最少搞定現在有的bug,還有先前承諾的功能。


程式說明 (Code Introduction)

程式流程

如果要理解程式的流程,推薦可以從V2紀念用下手,那時只有核心邏輯。

在這支程式中一切都是從 doPost(e) 這個 function 開始的,然後經過前面的一修必要流程(模式選擇、基本的預設、預處理、讀取doc檔)後,再從 "if (estringa.update_id) {" 這裡判斷是TG送來的,還是Line送來的json,並做出對應的處理。

程式規劃

為了讓使用者可以用最少的步驟完成更新,所以我在規劃程式劃分時只分離出3個檔案

  1. baseANDtest.gs <- 用來存放設定好後就不會再輕易改變的設定檔 (如 bot 的 token)
  2. Telegram_link_Line.gs <- 所有的程式
  3. Languages.gs <- 可自定義的語言包,可以把bot改成自己喜歡的樣子(V3.1開始才有)

因為這樣的設計故我需說明一下 Telegram_link_Line.gs (擠在一起很難讀)

如果是從 Telegram 來的

  1. 開啟 sheet 寫入 log。
  2. 判斷是不是群組或超級群組
    1-1 是否是以綁訂在 doc 中的 "升級房間" 中? (Y -> 1-3 , N -> 1-2)
    1-2 如果沒有在 doc 中,則給4次的機會來做房間綁定,4次後則離開。
    1-3 如果在 doc 中,則依傳送的類型(文字、貼圖...)用不同的函式傳到對應的 Line 房間。
  3. 如果是私人1對1
    2-1 是不是擁有者? (Y -> 2-3 , N -> 2-2)
    2-2 發送該專案連結請他自己做一個
    2-3 傳過來的是文字訊息? (Y -> 2-4 , N -> 2-5)
    2-4 依 ALL['mode'] 的值來判斷現在的模式,並依模式對bot進行設定,亦或發送訊息至 Line。
    2-5 如果 ALL['mode'] == "🚀 發送訊息" 則傳訊息至 Line,如果不是則請他注意當前模式。

如果是從 Line 來的

  1. 開啟 sheet 寫入 log。
    0-1 先取得 userName,爾後在將資料整理成本程式適合的格式後再繼續
    0-2 如果是媒體檔(照片、影片...)則先下載備用
  2. 查看傳來的訊息中的房間 ID 是否有在 doc 中(Y -> 1-1 , N -> 2)
    1-1 是否是 "已升級房間" ? (Y -> 1-2 , N -> 1-3)
    1-2 傳送訊息至對應的 TG 房間
    1-3 將訊息存在 sheet 的 "Line訊息區" 分頁中,並由bot私訊通知擁有者。
  3. 如果訊息的 type 不是 "leave",則在 doc 中新增房間資料,並更新 sheet,再通知擁有者。

doc的json說明

doc是很重要的文件,用來儲存會變動的資料。

{
  "data": [{
    "RoomId": "zzz",
    "Name": "(這個房間是空的)❎",
    "status": "normal",
    "Amount": 0,
    "Notice": false
  }],
  "mode": 0,
  "Notice": "正常通知",
  "opposite": {
    "RoomId": "zzz",
    "Name": "(這個房間是空的)❎"
  },
  "last": {
    "RoomId": "zzz",
    "Name": "zzz"
  },
  "Order": [0, 2, 1, 4, 3],
  "keyword": ["mi", "bot"],
  "RoomKeyboard": [
    [{
      "text": "🔃 重新整理"
    }, {
      "text": "🔧 更多設定"
    }, {
      "text": "🔭 訊息狀態"
    }],
    [{
      "text": "(這個房間是空的)❎"
    }]
  ],
  "FastMatch": {
    "(這個房間是空的)❎": 0
  },
  "FastMatch2": {
    "zzz": 0
  },
  "FastMatch3": {},
  "keyword_notice": false,
  "massage_time": false,
  "TG_temporary_docking": {},
  "wait_to_Bind": {},
  "GMT": "GMT+8",
  "code_version": 3.1
}

data = 存放房間資訊

mode = 暫存指令(通常為0)

Notice = 管理整體通知(確定廢除)(未作用)

opposite = 暫存指令對象房間

last = 來自Line端的最後訊息房間(未作用)

Order = 預計用來做自動依時間排序房間(未作用)

keyword = 關鍵字設定,出現關鍵字自動通知

RoomKeyboard = 房間的 keyboard,為節省重生時間而生

FastMatch = 快速索引用

FastMatch2 = 快速索引用

FastMatch3 = 快速索引用(給已升級房間用)

keyword_notice = 是否開啟關鍵字通知(預設為"關閉")

massage_time = 是否開啟訊息時間(預設為"關閉")

TG_temporary_docking = 如果bot被邀進群組則會登記於此,一旦bot在該群組中收到的前4則訊息,沒有包含綁定的隨機碼就會離開該群組以減少流量負荷。

wait_to_Bind = 當TG端按下升級房間時,則會將待綁定的房間資料塞入此處等待綁定,會被 /debug 或 /unsetroom 指令消除。

GMT = 此預設 GMT+8 若不再該時區可自行在 TGbot "更多設定" 中調整

code_version =
該程式的版本,用來驗證配對語言包正確性。

在這之後其實還有一些沒說明的屬性可以在 up_version 函式中找到。


版本資訊

2020/12/18 - (V3.6)
  • 改變 支援V8引擎!
    因為 Google Rhino 崩掉,不得已直接轉V8,如果有bug請直接私我回報。

更新方式:

  1. Telegram_link_Line.gs 修改
  2. 在 Google apps script IDE頁面中開啟V8引擎
    (詳細請參考準備中的第4步驟)
  3. 重部署版本 (版本是 "新增" )

2020/11/30 - (V3.5.2)
  • 新增 /reset_all_sticker 指令,當貼圖一直出錯時可用它清除貼圖快取
  • 改變 現在開始如果從Line傳送貼圖有問題,程式會嘗試自動修復1次 Imgur

更新方式:

  1. Telegram_link_Line.gs 修改
  2. Languages.gs 修改
  3. 重部署版本 (版本是 "新增" )

待做:

  • /reset_all_sticker 加速

提醒一下各位,如果是用我的server轉圖的,用了這版還有問題的話,麻煩請

  1. 轉換一下目標 apimedia_conversion 試試。
  2. 使用 /reset_all_sticker 清空貼圖快取

2020/07/16 - (V3.5.1)
  • 修正 CP() doc超過5w字元會失敗的問題

更新方式:

  1. Telegram_link_Line.gs 修改
  2. 重部署版本 (版本是 "新增" )

2020/07/15 - (V3.5)
  • 變更 在 "選擇房間" 後會嘗試獲取Line房間名稱,並顯示。
    Imgur

更新方式:

  1. Telegram_link_Line.gs 修改
  2. Languages.gs 修改
  3. 重部署版本 (版本是 "新增" )

2020/02/29 - (V3.4)
  • 部屬教學影片在1年半後終於生出來啦!!! 完全值得紀念⸜(* ॑꒳ ॑* )⸝

  • 新增 /help 指令(列出所有指令用)

  • 支援 TG → Line 的格式化文字(刪除線、code)

  • 改變 在新創 bot 時,up_version會自己設定資料夾權限,降低創造難度。 (此改變不會對已升級用戶造成影響)

  • 改變 現在開始如果 bot 在 TG 群遇到編輯過的文字會主動提醒 "不支援"

關於這個,如果你有什麼較好處理方法,歡迎私我提供

  • 修改 TG 貼圖的快取方式,現在會更省 diver 空間。
  • 修正 line 群有人離開時,名字顯示失敗的問題
  • 修正 Line → TG 的動畫貼圖,用"讀取留言"傳送失敗的問題
  • 修正 TG → Line 貼圖在 "🏀來源連結" 模式下傳送失敗(抵銷v3.3.3)

恩... 我覺得我被耍了,經過測試上次那個應該是 google drive 突然ㄆㄚˇ帶
程式碼本身沒問題 ( ˘・з・)
如果又有發生這樣的狀況 請等一陣子(我測試約2分鐘)再發同一張貼圖。 未來程式應該會主動解決這個問題。(可能自架圖床解決,最近google一直出問題啊...)

更新方式:

  1. 在 gs 上 執行CP()函示備份 後再繼續!!!
  2. Telegram_link_Line.gs 修改
  3. Languages.gs 修改
  4. 重部署版本 (版本是 "新增" )
  5. 對 bot 下 /up_version 指令,或是在 gs 上直接執行 up_version() 函式

2020/02/06 - (V3.3.3)
  • 修正 TG→Line 貼圖在 "🏀來源連結" 模式下傳送失敗

如果你這幾天跟我一樣發現貼圖傳送突然有問題的話,可以更新這個版本看看
沒問題的話不更新也沒差

更新方式:

  1. Telegram_link_Line.gs 修改
  2. 重部署版本 (版本是 "新增")

2019/12/28 - (V3.3.2)
  • 修正 新創的 bot 傳送 "照片+文字" 時文字會不見的問題
    (對... 舊的沒影響,我不知道為什麼( ˘•ω•˘ ) )
  • 因應 Line 修改 api 網址做出一點改變
    (若不做此次更新,2020/4/30 後便無法下載 line 的照片、貼圖...等媒體)
  • 修正 因為我英文渣把轉圖api名稱 "conversion" 拼成 "conservion" 的問題(゚皿゚メ)
    (現在是2個名稱都開了api,有在考慮要不要跟line一樣,舊的只支援到2020/4/30)

更新方式:

  1. Telegram_link_Line.gs 修改
  2. Languages.gs 修改
  3. 重部署版本 (版本是 "新增")
  4. (可選)去你的TGbot修改api名稱
    "🔧 更多設定" ->
    "🌀 轉圖設定" ->
    "🚲 設定目標請求" ->
    "media_conversion" ->
    完成!
    操作圖1
    操作圖2

2019/08/24 - (hotfix)(V3.3.1)
  • 修正 up_version出錯

更新方式:

  1. Telegram_link_Line.gs 修改
  2. 重部署版本 (版本是 "新增" )

如果你已經升級的話,請額外執行以下步驟:

  1. download_from_line資料夾("準備"中第3點有提到的資料夾)內,除了 "檔案放置區" 其他通通刪掉。(如圖)
  2. 去 sheet -> "JSON備份",找到舊的備份(看一下日期時間喔),複製後覆寫進doc。
    如果沒有備份 的話請去doc,將這張圖中的藍色部分刪掉 (從 "逗點" 開始,最後的 "}" 沒刪掉),紅色的部分改3.2
  3. gs執行 up_version() 函式
  4. 如果 up_version() 執行完沒問題的話,再對 TGbot 下 /main + /debug。 這樣就OK了。

================================
...我merge完
......測完訊息沒問題 .........就發布了
死也沒想到...會死在升級......。

結論...
merge時如果太多衝突...
然後確定自家dev分支絕對沒問題的情況下...
乾脆一點直接覆蓋,別太相信自己merge的能力了
才不會像我一樣東漏一個西漏一個...


2019/08/20 - (V3.3)

"🔧更多設定" 內:

  • 新增 "🍭變換房位" 功能 可以自由調換主選單的房間位置
  • 新增 "🆗設定提示" 功能 可以自訂是否要提示狀態? 提示後要不要刪除? 是否要延遲一定時間再刪?
  • 新增 "🌀轉圖設定"、"🎨 傳圖設定" 功能 能夠設定貼圖的處理方式。

新的特性:

  • 支援 TG 的 "已升級房間",從 "普通群組" 升級成 "超級群組" 的自動轉換
  • 新增 /up_version 指令至 TG_bot,之後升級程式可在複製貼上發布後對 bot 下該指令進行升級。
  • 新增 /info , /v , /V , /version 指令,用來查看 bot 程式版本。
  • 改變 "🔭訊息狀態" 現在會顯示目前已使用的人次量。

這次有特別新增 server 的程式碼
如果要自架 "轉圖server" 的請至 "image_conversion_server" 資料夾查看!

更新方式:

  1. 在 gs 上 執行CP()函示備份 後再繼續!!!
  2. Telegram_link_Line.gs 修改
  3. Languages.gs 修改
  4. 重部署版本 (版本是 "新增" )
  5. 對 bot 下 /up_version 指令,或是在 gs 上直接執行 up_version() 函式

已知Bug:

  1. 當line成員離開時無法顯示是誰離開(需等下次加新功能時才能修)
    (真的是下次啦QQ,要先來改老師給東西不然會開天窗,只好做一半先發布Orz)
  2. TG bot 傳送 "檔案" 時,"檔案名稱"要是含有中文,中文的部分顯示不出來
    (覺得TG的問題,我之後盡量嘗試修補)

2019/07/27 - (hotfix)(V3.2.6)
  • 修正 (hotfix)(V3.2.5) 造成 bot 停擺的問題

對不起 。・゚・(つд`゚)・゚・ 我下次一定會先過 autotest 才放上來

更新方式:

  1. Telegram_link_Line.gs 修改
  2. 重部署版本 (版本是 "新增" )

2019/07/26 - (hotfix)(V3.2.5)
  • 修正 Line 傳到 TG 時無法處理 "$" 號問題

更新方式:

  1. Telegram_link_Line.gs 修改
  2. 重部署版本 (版本是 "新增" )

2019/04/07 - (hotfix)(V3.2.4)
  • 修正 TG、Line 端傳送字串太長導致失敗的問題

更新方式:

  1. Telegram_link_Line.gs 修改
  2. 重部署版本 (版本是 "新增" )

2019/02/21 - (V3.2.3)
  • 修正 刪除房間後還會觸發"關鍵字"的問題
  • 修正 line_bot在一般房間中加入時無法顯示加入的房間類型的問題(room、group、user)
  • 修正 刪除房間後觸發"新房間"的問題(變成原本的房間洗白後再創一次,且bot還是離開的狀態
已知Bug:當line成員離開時無法顯示是誰離開(需等下次加新功能時才能修)

更新方式:

  1. Telegram_link_Line.gs 修改
  2. 重部署版本 (版本是 "新增" )

2019/01/11 - (V3.2.2)
  • 修正 電腦版圖片無法下載的問題
    (現在確定 win7電腦版(5.12.1.1857)、安卓(8.19.2)、IOS(8.17.0)皆可預覽跟下載)

更新方式:

  1. Telegram_link_Line.gs 修改
  2. 重部署版本 (版本是 "新增" )

2018/12/27 - (hotfix)(V3.2.1)
  • 修正 /tryget 失敗沒提示原因、指令後面加上"@XXX"後失敗 的問題
  • 修正 在讀取留言時,成員加入、離開的訊息無法讀取 的問題
  • 修正 遇到follow、unfollow事件就發生錯亂 的問題
  • 修正 傳送失敗時,沒有辦法知道出錯的是哪個訊息及發送目標 的問題

更新方式:

  1. Telegram_link_Line.gs 修改
  2. Languages.gs 修改
  3. 重部署版本 (版本是 "新增" )

2018/12/14 - (V3.2)
  • 支援 File 傳送至 Line。
  • 支援 Telegram 傳送格式化連結給 Line。(粗體、斜體、連結,不包含code)
  • 支援 Telegram Vote_Note(前鏡頭圓形影片) 傳至 Line。
  • 支援 在 bot 內更改時區(GMT)。
  • Telegram "回覆訊息"格式更改,以美化 Line 那邊的排版。
  • Line 傳送給 Telegram 的檔案和錄音不再是連結而是"實物"。
  • "已升級的房間" 在 "主選單" 中的狀態符號改為"⭐️"。
  • "已升級的房間" 已可直接改名,不需先降回去普通房間。
  • 現在可以在還有未讀訊息的情況下直接升級房間,會自動在新群傾倒舊訊息。
  • 現在在 Telegram 中已能知道 Line 群人員加入、離開的狀況。
  • 現在在 Telegram 中已能知道 Line_bot 被踢除、加入的狀況。
  • 現在如果 "Line伺服器" 掛掉無法取得檔案,可用 /tryget_XXX 的方式重新取得。
  • "(正在傳送XX,請稍後...)" 或其他 "告知類" 訊息在完成後會自動刪除。
  • 修復 一直傳同張照片的問題、附檔名錯亂的問題。
  • 修復 安卓、ios版Line app 無法查看照片的問題(分別測試於8.18.1、8.17.0)。
  • 修復 Line room type 為"room"時,Line群人名無法獲取的問題。
  • 修復 特殊情況下要轉傳2次驗證碼才能綁訂房間的問題。
  • 提升bot檔案檢索速度。
  • 指令效果變更! /allread 現在不會把檔案丟到垃圾桶。
    如要丟棄檔案請至 "🔧 更多設定 / 🌋 丟棄舊檔" 。
  • ct['xxx']['text']的內容現在可以為 ['String','String'],系統會串接起來。

這次更新前一樣先 CP() 過後再用 /allread 在更新較不會有意外發生。

此外如果你的GCP專案列表出現不明的專案請先不要砍,這個專案可能就是這個bot用的,如果砍了...
這裡有補救的方式......
by我的血淚教訓。

更新方式:

  1. Telegram_link_Line.gs 修改
  2. Languages.gs 修改
  3. 在gs中執行 up_version() 函式
  4. 重部署版本 (版本是 "新增" 謝謝)

2018/10/06 -
  • GIF、錄音 可從 Telegram 傳 Line。
  • Telegram 貼圖可傳至 Line (部分Line裝置無法觀看)。
  • 新增自訂語言包功能,對於不習慣我的bot講話風格者可自訂自己的bot風格。
  • 可自行調整時區(GMT),預設 GMT+8,預計下次更新可以在 Telegram 中調時區。
  • TG群_link_Line群 功能開啟 ,升級房間的功能變更,改成用"新群組"的方式來升級房間。(不知為何有些人開的群組bot收不到訊息,必須升級至超級群組並給bot管理員權限才OK)。
  • 刪除房間的功能不再只是刪除在doc端的資料,現在開始會嘗試離開,但如果是bot與他人1對1的"房間"則無法離開。
  • 修正 /debug 指令失效問題。
  • 修正登記新房間後會有機率撞名導致開啟房間錯亂的問題。
  • 修正把房間全刪後無法新增新房間的問題。(算你狠wwwww

此次更新前請務必將所有房間降級後再來更新,如覺得太多房間要降覺得麻煩可以先將 Telegram_link_Line.gs 的內容貼上,然後 儲存但不發佈 後執行 "mv_all_uproom()" 這個函式來一鍵全降級。 (記得先"CP()"過,如果真的出狀況還可以去sheet中"JSON備份"內找到備份還原回去)。

一樣在 "更新前" 請盡量看過所有內容後按下 /allread 指令,較不會有意外發生。

如果升級群組後發現你轉傳"驗證碼"後完全沒反應,請先去開找@BotFather關閉掉隱私模式,然後再轉傳一次。

步驟:

  • /mybos
  • (選擇這個bot)
  • Bot Settings
  • Group Privacy
  • turn off

此時上面的文字應該是會改成向類似這樣 "Privacy mode is disabled for (bot 名稱) (bot的username)."

在不行的話,請升級成 超級群組 並給bot管理員的權限----。

更新內容:
1.Telegram_link_Line.gs 修改
2.Languages.gs 新增(看readme


2018/05/28 -
  • 提升穩定性,加入"關鍵字提醒"、"訊息時間"兩功能
  • 溫馨提醒! 預設兩項功能皆是"關閉",請自行開啟謝謝!

請手動更新 Telegram_link_Line.gs,在 "更新後",還需要手動執行 REST_keyboard 函式(如圖示範),若擔心資料崩潰可先執行 CP 函式,這樣就算壞了也能手動回朔。
而在 "更新前" 請盡量看過所有內容後按下 /allread 指令,較不會有意外發生。


2018/03/16 -
  • 有效提升穩定性、現在發圖片時的"簡介"也會一同被發出去了
  • 正發送"位置"、"文檔"的錯誤

2017/09/28 - V3初次發布!

常見問答 (Q&A)

1. 為什麼升級房間後 bot 不會有任何回應?

你忘記解除隱私模式,請見這裡,設定後如果還是不行,請將 bot 移除群組後在重新拉入試試。

2. 為什麼 bot 沒有辦法傳送貼圖、照片、影片?

在剛部屬或升級bot時有一個 "執行 up_version()" 步驟,尼可能沒有做,請對 bot 下 /up_version 指令後即可解決(如果是 V3.3 以前的版本請手動到gs執行)

3. 如何查看 bot 版本?

請對 bot 下 /info , /v , /V , /version 中其中一個指令,如果是 V3.2 或 V3.1 的版本,請至 doc 文件尋找 code_version 的值,更早的版本... 只能對照程式碼了(。ŏ﹏ŏ)

4. bot 突然在某個地方卡住了怎麼辦?

原則上應該是不會出現這種狀況(都用全局鎖了qwq),如果不是網路或TG的問題的話,請 /main + /debug 再繼續操作,要是依舊無解請在 Telegram 上找 @we684123 來協助處理。
私訊時請直接說明來意,並給我 "baseANDtest -> base()" 截圖(如下,記得打碼),還有發生時sheet中對應時間的log的。
Imgur
Imgur

5. 為什麼我的 line bot 無法加入 line 的群組中?

這是因為 line 限制一個群組只能加入一個 bot,如果你目前群組內的 bot 是 Telegram_link_Line bot 的話可以請擁有者邀你進入他的TG群,本bot支援 TG 群對 line 群的對話方式。
或著還有個狀況是你沒有把"自動同意加入群組"打開(參考問題6的圖)

6. Line bot 在對方傳訊息後自動回說「感謝您傳送訊息給我!很抱歉...」,這段訊息怎麼關掉?

這個要去 line bot 的後臺關掉 line新版後臺圖

7. 怎麼確定這個 bot 的資料不會外傳?

基本上這 bot 是架在你的 Google Apps Script 上的(其實也算是在GCP上),我完全沒存取權,如果你沒有主動將設定檔 (baseANDtest.gs & doc.gs & gs的對外網址) 的內容洩漏出去的話是不會有這樣的問題的。

唯一有可能的是貼圖因為無法在 gs 上進行轉換,故會先送到我的 server 上做轉換後才送回你的 Google Drive,我的server目前不會存任何貼圖,且如果您在 "🔧更多設定" -> "🌀轉圖設定" 設成 "不讓server存" 那我未來即使為了加快轉圖速度而保留轉圖後的貼圖,也不會存下你的貼圖。

當然,您也可以直接自架轉圖 server,原始碼我也有開源於此專案,架好後去 "🌀轉圖設定" 改一下 server 域名就好。

8. (這個房間是空的)❎ 這個房間可以刪掉嗎?

可以的,請直接刪掉!

9. 對方從 line 傳的檔案一直下載不下來怎麼辦? (bot 回傳 500)

500的話要嘛是 line 伺服器的問題,只能等。
還有一個可能是他傳的大小超過 50MB,bot 無法下載(還在構思這怎麼解決qwq)

但就算沒超過 50 MB,Line server也會處理N久
我遇過等她處理 32MB 處理整整2小時半的案例過...。

10. 只有貼圖傳送錯誤

如果錯誤訊息是 "bot發生錯誤,訊息如下:TypeError: 無法呼叫 undefined 的「getResponseCode」方法。" 可能是你的 "🌀 轉圖設定",設定錯誤,請設好後再繼續。
(預設是 目標伺服器域名:we684123.hopto.org 目標api:media_conservion)
Imgur

還有一個可能是你的 download_from_line 資料夾忘記設成 "知道的人均可檢視" (不過v3.4開始會自己設定好權限,應該較少發生這個問題,但還是可以檢查一下)

11. 收的到LINE群組訊息但顯示發送者的功能無效,或無法透過TG發訊息到LINE

你的 CHANNEL_ACCESS_TOKEN 設定有問題,正常的 CHANNEL_ACCESS_TOKEN 長這樣

12. 當初為什麼做這個bot?

因為我以前的手機容量不大,Line太佔空間,所以只好用Telegram來間接使用Line
印象中是這個原因啦......

贊助(Donate)

hmmm........
如果你覺得這對你有幫助的話,........
聽說這是 "台灣pay" 的 QRcode..............
我也沒用過(。ŏ﹏ŏ) .......................................

Imgur


Author

永格天
一個中二病水瓶座男子
不太擅長塗鴉 (看大頭貼就知道Orz...)