読者です 読者をやめる 読者になる 読者になる

人工知能作っちゃう?

画像処理を中心に人工知能を作っていきます。

Line非公式APIを使ってみた

こんなこと書いていいのかわからないが。書きます。

そもそもLine非公式APIとは

  • carpedm20 によってPythonで書かれた非公式のLineのAPI
  • 本家のLineから苦情がきて少しやりづらい。

準備

pip

easy_install pip

Lineのライブラリ

carpedm20/LINEのReadmeを読んでインストールしてください。

GetLineApiAuthToken

iwdmb/GetLineApiAuthTokenこれもReadme読んで。

プログラムの作成

まず、AuthTokenを取得しなくては。
ターミナルでpython GetLineApiAuthTokenと入力してメアドとパスワードを入力。
Pinコードが届いたらスマホで入力するとAuthTokenを取得できる。

取得し終わったらPythonでプログラムを書いていく。

# -*- coding: utf-8 -*-

from line import LineClient, LineGroup, LineContact
import time


client = LineClient(authToken="XXXXXXXXXXXXXXXXX")

while True:
    op_list = []
    #取得
    for op in client.longPoll():
        op_list.append(op)
    #一個一個
    for op in op_list:
#送信者
        sender = op[0]
#受け取った人
        receiver = op[1]
#メッセージ
        message  = op[2]
        msg = message.text
        sender.sendMessage("[自動返信] %s?なにそれ〜"%(msg))


    time.sleep(8)

上のは受け取ったメッセージになにそれ〜をつけて返すだけのプログラム。
time.sleepは重要で、これをしないとLineから規制がかかってAuthTokenが1分に一回くらい更新されて使い物にならない。

また、msgがNoneになっている人は[設定]->[トーク・通話]からLetter Sealingを無効にすると上手くいく。

まとめ

Line Messaging APIよりは使いやすいと思う。ただ、AuthTokenをすぐに変えられると非常にめんどくさいのでLine様には仕様を変えていただきたい苦笑
ここで書いたのはほんの一部なので、Line Manualをみてほしい。