J'ai essayé LineBot. Je suis désolé pour l'argent, alors je l'ai construit avec GAE. J'ai utilisé Python / Flask parce que Java est maladroit.
Si vous êtes nouveau dans ce domaine, il sortira.
La source ressemble à ceci.
app.yaml
runtime: python27
api_version: 1
threadsafe: yes
- url: .* # This regex directs all routes to main.app
script: main.app
libraries:
- name: ssl
version: latest
Au début, il s'adapte sans ajouter la bibliothèque ssl.
Lorsque l'utilisateur parle au Bot, l'API spécifiée dans le rappel est appelée. C'est comme appeler l'API de Line dans un rappel et envoyer du texte et des photos. Veuillez vous référer au manuel et aux autres qiita pour les paramètres de rappel.
La source ressemble à ceci.
main.py
# -*- coding: utf-8 -*-
import logging, random
import requests
from flask import Flask, request,Response
app = Flask(__name__)
app.config.from_object(__name__)
app.logger.setLevel(logging.DEBUG)
LINE_ENDPOINT = "https://trialbot-api.line.me"
HEADERS = {
"X-Line-ChannelID": "<Voir les informations du bassin>",
"X-Line-ChannelSecret": "<Voir les informations du bassin>",
"X-Line-Trusted-User-With-ACL": "<Voir les informations du bassin>"
}
#Groupe de messages fixes
TALKS = [
"Hou la la! Allons! !!",
"Ouais ... je veux ...",
"Pipi! Pipi!",
"Où est allé le propriétaire",
"Shinotomo ~~~",
"Ngu ~ ngu ~~",
"Hehehehehehehehe",
"Uo ・ e ・ oU",
"Lécher lécher",
"Je veux me lécher les mains",
"Je me demande si le riz est tombé",
"Facile et facile",
"Regardez!",
"Danse! Danse Danse! !!"
]
#Groupe d'images
IMAGES = [
{"origin": "https://storage.googleapis.com/linebot-1275.appspot.com/monaka1.jpg ",
"thumb": "https://storage.googleapis.com/linebot-1275.appspot.com/monaka1thum.jpg "}
]
@app.route("/")
def hello():
return "line bot api"
@app.route("/callback", methods=["POST"])
def callback():
# TODO Signature validation
app.logger.info(request.json)
app.logger.info(request.headers)
req = request.json["result"][0]
if req["eventType"] == "138311609100106403":
"""
La réception des demandes d'amis vient ici.
Envoyez un message de remerciement dès que vous postulez.
TODO non vérifié
"""
send_text([req["from"]], u"C'est aussi à l'intérieur. Merci pour votre demande d'ami.")
elif req["eventType"] == "138311609000106303":
"""
Venez ici lorsque vous recevez un message de conversation.
Lorsque vous dites "Monaka", une photo et un message sont renvoyés.
Sinon, le texte préparé est renvoyé au hasard.
"""
to = [req["content"]["from"]]
if req["content"]["text"] == u"Monaka":
#Envoyer des photos
i = random.randint(0, len(IMAGES) - 1)
send_picture(to, IMAGES[i])
send_text(to, "Quoi?")
else:
#Envoyer un message
i = random.randint(0, len(TALKS) - 1)
send_text(to, TALKS[i])
#La valeur de retour est fixée à 200
return Response(status=200)
def send_text(to, text):
"""
Envoyer un SMS à
"""
content = {
"contentType": 1,
"toType": 1,
"text": text
}
events(to, content)
def send_picture(to, img):
"""
Envoyer l'image à
"""
content = {
"contentType": 2,
"toType": 1,
"originalContentUrl": img["origin"],
"previewImageUrl": img["thumb"]
}
events(to, content)
def events(to, content):
"""
Données pour au(Texte / images / vidéos)Envoyer
"""
app.logger.info(content)
data = {
"to": to,
"toChannel": "1383378250",
"eventType": "138311608800106203",
"content": content
}
r = requests.post(LINE_ENDPOINT + "/v1/events", json=data, headers=HEADERS)
app.logger.info(r.text)
Le serveur étant sur liste blanche, le serveur de Line renverra une erreur si vous ne définissez pas l'adresse IP. Cependant, comme il s'agit de GAE, il n'y a pas d'adresse IP fixe. Lorsque j'ai essayé d'y accéder, j'ai eu une erreur 403 et le message suivant a été affiché.
{"statusCode":"427","statusMessage":"Your ip address [107.178.194.118] is not allowed to access this API."}
Donc, si vous ajoutez cette adresse IP et la déplacez
{"statusCode":"427","statusMessage":"Your ip address [107.178.194.122, 10.128.141.149] is not allowed to access this API."}
Ensuite, on m'a demandé de définir quelque chose qui semble être une adresse IP interne, je vais donc le définir docilement.
Ça a marché. Il y a de fortes chances que l'adresse IP change un jour et que cela ne fonctionne pas. Je voudrais me laisser la solution à l'avenir.
Il semble que vous puissiez le faire à partir du code QR. (Je n'ai pas compris et j'ai souffert tout le temps) Cette fois, mon chien "Monaka Bot"
Vous pouvez ajouter à partir de.
Recommended Posts