用 LINE API 打造自動回話機器人-2016/10/19更新

2016/10/19 更新LINE機器人相關文章:「LINE Bot 機器人 Trial API 試用 – 2016/10/05 更新


首先:這個主題其實並不是這麼的「正式」、「開放」。

因為 LINE 根本沒放出一個正式的 API 來讓開發者使用,那...

對,就是有韓國的神人去解析 LINE 的通訊機制,寫了個非官方的 API 來用!

LINE API

有趣的事是官方跑去要求作者對某部分的程式碼移除,某種程度上這也是種官方認證吧XD

現在要使用這套lib 要繞一下路,聰明的你應該可以知道(默)

下面提供我小改一下變成真正的回音機器人程式碼

#!/usr/bin/python
# -*- coding: utf-8 -*-
from line import LineClient, LineGroup, LineContact

try:
   client = LineClient(authToken="AUTHTOKENSTR")
except:
   print "Login Failed"

while True:
   op_list = []

   for op in client.longPoll():
      op_list.append(op)
      for op in op_list:
        sender = op[0]
        print sender
        receiver = op[1]
        print receiver
        message = op[2]
        print message
        msg = message.text
        print msg
        if message.contentType == 0:
          sender.sendMessage('自動回話機器人測試中: %s' % (msg))
        else:
          print 'Do nothing'
          print message.contentType

2015/8/24 更新

Github上的專案已被LINE官方提出侵權,開發者請注意使用別拿自己本尊開玩笑XD

DCMA Takedown

另外補充更新點: 這裡

Facebook 外掛功能


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

參與討論

42 則留言

  1. 您好 請問一下”現在要使用這套lib 要繞一下路,聰明的你應該可以知道您好 請問一下””
    這句話 還是不太懂? 可否提示一下 謝謝

  2. 我用的是
    line 0.0.8 可以WORK但用新版0.5.2是不能WORK
    請問一下 您用的是幾版? Python 又是幾版?

    1. 阿呀,一忙就忘記回你了,抱歉!
      我用的是最新版哦! Python是2.7版,作者有持續的在更新與修正,你說的不能work是甚麼問題呢?

  3. 我現在改用0.6.4 一樣會出現錯誤訊息

    # python

    Python 2.7.5 (default, Jun 17 2014, 18:11:42)

    [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2

    Type “help”, “copyright”, “credits” or “license” for more information.

    >>> from line import LineClient, LineGroup, LineContact

    >>> client = LineClient(“[email protected]”, “xxxxx”)

    Enter PinCode ‘9243’ to your mobile phone in 2 minutes

    Traceback (most recent call last):

    File “”, line 1, in

    File “/usr/lib/python2.7/site-packages/line/client.py”, line 81, in __init__

    self.login()

    File “/usr/lib/python2.7/site-packages/line/api.py”, line 113, in login

    raise Exception(“Code is removed because of the request of LINE corporation”)

    Exception: Code is removed because of the request of LINE corporation

    >>> print client.authToken

    Traceback (most recent call last):

    File “”, line 1, in

    NameError: name ‘client’ is not defined

    手機中 打完PIN CODE 一樣沒用

    1. 這邊就是他在0.0.8之後版本中加入的trick了,你可以看看我上面code用什麼方式登入! 再想看看哪一版本可以,這樣應該就通了吧? (如果還是不清楚,就用聯絡我的方式聯絡我吧)

  4. 你好,
    我不太了解 ” 現在要使用這套lib 要繞一下路,聰明的你應該可以知道(默)”,這句話的意思,可否暗示一下呢?
    非常感謝!!

      1. 你好,經過一番 google 後,已經可以使用了,但現在遇到 authToken 每兩小時就會過期的問題有點麻煩,雖說 0.6.4 的版本宣稱有解決 authToken 過期的問題,但我試過的結果仍然無效,可能原作者遭 LINE 公司警告而拿掉了一些 code…. Orz

        1. Good 我看最近的更新裡有提到更新token的問題,也有實作出來,可以試著更新到最新版後呼叫看看囉!

          client.updateAuthToken()

          1. 新版的 AuthToken 過期問題似乎已解決, 目前測試了三天都尚未過期

          2. 哈囉~~
            請問一下新版的作法跟0.08一樣嗎?
            它會自動更新AuthToken?
            還是需要呼叫什麼呢@@

            謝謝你~

          3. 使用 git clone https://github.com/carpedm20/LINE 下載最新版的 source code, 做法跟 0.0.8 一樣, 但不需使用 client.updateAuthToken() 來更新 authToken, 只需用 authToken 登入後即可, 測試至目前為止沒有出現過期的 error message

          4. 請問一下新版的要怎麼使用呢?
            我使用後還是會遇到過期的問題

          5. Hi, 你是用 0.0.8 取得 authToken 後再用新版登入嗎?
            authToken 取得後,
            到新版的 folder 裡需要再執行 install 一次.

            0.6.9 之前的版本我測試的結果是會有過期的問題,

            目前穩定使用 0.6.9 的版本

          6. 感謝你的回答,但是還是一樣會過期,也查詢過當前版本是新版的了,可以請問你更詳細一點嗎?或是提供一下聯絡的方式? 再次感謝

          7. 感謝你願意大方分享,讓社群的力量更加強大! 有機會分享相關新聞資訊也歡迎提供連結,我再把這篇文章做更新!

  5. 你好我已經可以用line api登入了,但是程式碼要寫在哪??

  6. 請問 我現在用最新版一切運作正常 可是還是有token過期的問題
    用token登入後再使用client.updateAuthToken() 卻出現
    Exception: Error: You need to login first. There is no valid certificate
    不知道問題出在哪 謝謝!

  7. 哈囉
    想請問一下

    我用0.7.1+登入動手腳後可以正常做自動回復
    但是我發現他跑一跑會自己卡住掛掉
    甚至在剛剛我整個IP被*.line.naver.jp鎖掉了 Orz

    我發現他的LongPolling一秒鐘就送出了3~4個request
    一個晚上就送了幾萬個request…
    或許是被認定為DDoS惡意攻擊之類的

    不知道您有沒有遇過類似問題呢?
    謝謝

    1. 我也被鎖了!!!
      機器人好不容易堅持了一個禮拜沒離線的說
      看來這次LINE決心封鎖非官方認證的機器人了

      1. 我想應該是$$的問題吧
        一個官方帳號可以賺好幾十萬
        我們私架的去占用到他的資源檔他們財路…

        我認為原因還有一個啦
        就是像我說的,request太頻繁被認定是DDoS
        就看作者要不要處理了….

      2. 我也是被鎖了
        也找了很多方法讓機器人存活超過一星期
        但是我看日本還是很多機器人活著…

  8. 請問現在這package還能用嗎
    我用0.0.8的嘗試client = LineClient(“xx”,”xxx”) 手機上寫不再支援目前嘗試登入的Line版本

  9. 好哈哈哈 剛剛還試著用定期截圖部分區域 然後再用圖像識別來打造接收訊息的process 結果發現超級不ok哈哈哈哈
    好吧 我再想想我要的是什麼 尋找替代方案 大不了用pyautogui來發訊息….反正我是要放在一台不會用到的電腦上跑的XD

  10. 請問如何將python程式包到web或android apk裡嗎,就是說用 textbox控制要傳送的訊息內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *