[PYTHON] Es scheint, dass die Messaging-API neu von LINE veröffentlicht wurde, daher habe ich einen BOT erstellt, der nur wie gewohnt morphologische Analysen durchführt.

Einführung

Ich habe genau das Gleiche mit meinem Testkonto gemacht, aber ich erhielt eine drohende E-Mail mit der Aufschrift "Ich werde alle meine Konten löschen !!", also bin ich umgezogen.

Repository

Was ich gemacht habe

https://github.com/nnsnodnb/morphological-linebot

LINE Offizielles SDK

https://github.com/line/line-bot-sdk-python

BOT

9FlxYyqoOH.png

Ich wünschte, ich könnte auf die [Wiki-Seite] des SDK gelangen (https://github.com/line/line-bot-sdk-python/wiki/Projects-Using-SDK) ...

Umgebung

Quellcode

bot.py


# coding: utf-8

from __future__ import unicode_literals

from flask import Flask, request, abort

from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage

from janome.tokenizer import Tokenizer

import os, re, json

def load_env():
    try:
        with open('.env') as f:
            content = f.read()
    except IOError:
        content = ''

    for line in content.splitlines():
        m1 = re.match(r'\A([A-Za-z_0-9]+)=(.*)\Z', line)
        if m1:
            key, val = m1.group(1), m1.group(2)
            m2 = re.match(r"\A'(.*)'\Z", val)
            if m2:
                val = m2.group(1)
            m3 = re.match(r'\A"(.*)"\Z', val)
            if m3:
                val = re.sub(r'\\(.)', r'\1', m3.group(1))
            os.environ.setdefault(key, val)

load_env()

app = Flask(__name__)

line_bot_api = LineBotApi(os.environ.get('CHANNEL_ACCESS_TOKEN'))
handler = WebhookHandler(os.environ.get('CHANNEL_SECRET'))

@app.route("/callback", methods=['POST'])
def callback():
    signature = request.headers['X-LINE-Signature']

    body = request.get_data(as_text=True)
    receive_json = json.loads(body)
    message = receive_json['events'][0]['message']['text']

    response_arrays = []
    t = Tokenizer()
    for token in t.tokenize(message):
        response_arrays.append(str(token))

    response = ''
    for item in range(len(response_arrays)):
        if len(response_arrays) == item + 1:
            response += str(response_arrays[item])
        else:
            response += str(response_arrays[item] + '\n')

    try:
        line_bot_api.reply_message(receive_json['events'][0]['replyToken'], TextSendMessage(text = response))
    except InvalidSignatureError:
        abort(400)

    return 'OK'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port = 8003, threaded = True, debug = True)

.env


CHANNEL_ACCESS_TOKEN='hogehoge' #Sehr langer Kerl
CHANNEL_SECRET=''					#Derjenige, der sich wie zuvor versteckt

Einstellungen auf der Seite des LINE-Verwaltungsbildschirms

Natürlich müssen Sie HTTPS verwenden, also geben wir unser Bestes!

スクリーンショット 2016-10-21 午前0.45.56.png

Geben Sie Ihr Bestes, um den LINE @ -Verwaltungsbildschirm zu erreichen, und verwenden Sie ** "Kontoeinstellungen" **> ** "Bot-Einstellungen" **, um die gewünschten Einstellungen vorzunehmen!

Tatsächliche Antwort

FullSizeRender.jpg

Es ist sehr schwer zu sehen ...

Schließlich

Wenn es etwas gibt, möchte ich, dass Sie eine Pull-Anfrage usw. einreichen! Bitte gib mir auch eine LINE Wiki Seite.

Ich war zuerst ungeduldig, weil es in der alten API und dieser neuen API keine "request.headers [" X-LINE-Signature "] gibt. Übrigens entspricht es in der alten API "request.headers ['X-Line-Channelsignature']".

Recommended Posts

Es scheint, dass die Messaging-API neu von LINE veröffentlicht wurde, daher habe ich einen BOT erstellt, der nur wie gewohnt morphologische Analysen durchführt.
Ich habe einen Linienbot erstellt, der das Geschlecht und das Alter einer Person anhand des Bildes errät
[LINE Messaging API] Ich möchte eine Nachricht vom Programm an alle LINE senden
In Python habe ich einen LINE-Bot erstellt, der Polleninformationen aus Standortinformationen sendet.
Ein Skript, mit dem Sie mit der LINE Messaging-API auf einfache Weise umfangreiche Menüs erstellen können
Ich habe Chatbot mit LINE Messaging API und Python erstellt
[Python] Ich habe einen Line-Bot erstellt, der zufällig nach englischen Wörtern fragt
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert
Ich habe Chatbot mit der LINE Messaging API und Python (2) ~ Server ~ erstellt
Da ich zu verschiedenen Zeiten anfing zu arbeiten, machte ich einen Bot, der mir die Zeit sagt, die Arbeit zu verlassen
[Python] Ich habe einen Bot erstellt, der mir die aktuelle Temperatur anzeigt, wenn ich einen Ortsnamen in LINE eingebe
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Ich habe einen einfachen Timer erstellt, der vom Terminal aus gestartet werden kann