Tutorial Membuat LINE Chatbot untuk Info COVID-19 Indonesia
Karena di rumah sangat tak tertahankan bosannya, akhirnya terpikirkan juga mau ngapain. Awalnya aku ingin buat LINE chatbot untuk menghitung utang teman-temanku hihihi. Karena request API ke aplikasi money manager aku belum disetujui, yaudah aku coba buat LINE chatbot untuk memantau jumlah kasus COVID-19 di Indonesia.
Register LINE Chatbot (Messaging API)
1. Login di https://developers.line.biz/en/ menggunakan LINE Account. Link tersebut merupakan LINE Developer Console.
2. Create providers. Provider disini bisa manage beberapa channel bot.
2. Create providers. Provider disini bisa manage beberapa channel bot.
3. Create a Messaging API channel, nah disini untuk buat botnya.
4. Isi data-data tentang bot kamu, seperti icon, nama, dan deskripsi bot kamu. Setelah isi, klik Create.
5. Baca dan setujui Syarat dan Ketentuan
7. Pilih tab Messaging API, klik Issue pada Channel access token, pastikan kamu bisa lihat kodenya juga.
Kodingan python untuk menghandle pesan yang dikirim
1. Download kodingannya di https://github.com/yaoandy107/line-bot-tutorial/archive/master.zip
2. Ekstrak dan buka file app.py
3. Ubah YOUR_CHANNEL_ACCESS_TOKEN dengan kode channel access tokenmu, dan YOUR_CHANNEL_SECRET dengan kode channel secretmu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Channel Access Token | |
line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN') | |
# Channel Secret | |
handler = WebhookHandler('YOUR_CHANNEL_SECRET') |
4. Tambah kode berikut di bawah baris from linebot.models import * untuk mengakses data dari API Kawal Corona https://kawalcorona.com/api/
6. Sehingga keseluruhannya seperti ini
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from linebot.models import * | |
#tambahkan ini######################### | |
import requests | |
import json | |
url = "https://api.kawalcorona.com/indonesia/" | |
response = requests.get(url) | |
parsed = response.json()[0] | |
negara = parsed["name"] | |
positif = parsed["positif"] | |
sembuh = parsed["sembuh"] | |
meninggal = parsed["meninggal"] | |
######################################## |
5. Ubah isi handle_message() seperti di bawah
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def handle_message(event): | |
msg_from_user = event.message.text | |
if msg_from_user == 'Data-covid': | |
message = TextSendMessage("Data COVID-19 " + negara + "\nPositif: " + positif + "\nSembuh: " + sembuh + "\nMeninggal: " + meninggal) | |
line_bot_api.reply_message(event.reply_token, message) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask import Flask, request, abort | |
from linebot import ( | |
LineBotApi, WebhookHandler | |
) | |
from linebot.exceptions import ( | |
InvalidSignatureError | |
) | |
from linebot.models import * | |
#tambahkan ini######################### | |
import requests | |
import json | |
url = "https://api.kawalcorona.com/indonesia/" | |
response = requests.get(url) | |
parsed = response.json()[0] | |
negara = parsed["name"] | |
positif = parsed["positif"] | |
sembuh = parsed["sembuh"] | |
meninggal = parsed["meninggal"] | |
######################################## | |
app = Flask(__name__) | |
# Channel Access Token | |
line_bot_api = LineBotApi('kode') | |
# Channel Secret | |
handler = WebhookHandler('kode') | |
# 監聽所有來自 /callback 的 Post Request | |
@app.route("/callback", methods=['POST']) | |
def callback(): | |
# get X-Line-Signature header value | |
signature = request.headers['X-Line-Signature'] | |
# get request body as text | |
body = request.get_data(as_text=True) | |
app.logger.info("Request body: " + body) | |
# handle webhook body | |
try: | |
handler.handle(body, signature) | |
except InvalidSignatureError: | |
abort(400) | |
return 'OK' | |
# 處理訊息 | |
@handler.add(MessageEvent, message=TextMessage) | |
def handle_message(event): | |
msg_from_user = event.message.text | |
if msg_from_user == 'Data-covid': | |
message = TextSendMessage("Data COVID-19 " + negara + "\nPositif: " + positif + "\nSembuh: " + sembuh + "\nMeninggal: " + meninggal) | |
line_bot_api.reply_message(event.reply_token, message) | |
import os | |
if __name__ == "__main__": | |
port = int(os.environ.get('PORT', 5000)) | |
app.run(host='0.0.0.0', port=port) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
line-bot-sdk | |
flask | |
requests |
Daftar Heroku dan Install Heroku CLI
1. Daftar dan login akun di https://dashboard.heroku.com/
2. Klik New, lalu klik Create New App, lalu isi nama aplikasi.
2. Klik New, lalu klik Create New App, lalu isi nama aplikasi.

3. Download dan install Heroku CLI di https://devcenter.heroku.com/articles/heroku-command-line
4. Setelah diinstall, buka CMD atau Terminal, lalu login menggunakan perintah

5. Pindah ke folder yang telah diekstrak tadi, dan akses secara remote melalui nama app heroku nya, menggunakan perintah (pastikan kamu udah install git juga yaa)

6. Push file-file yang diekstrak menggunakan perintah

Enable webhook dan kaitkan LINE Chatbot dengan Heroku
1. Klik tab Messaging API pada LINE Developer Console lalu Edit Webhook URL dengan format
HEROKU_APP_NAME diubah dengan nama aplikasi yang dibuat di Heroku
Add Bot melalui QR di LINE kamu dan tes botnya
1. QR Bot ditampilkan di tab Messaging API pada LINE Developer Console
2. Tes Bot
Terimakasih
Thanks udah ikutin tutorialnyaa, maaf apabila ada kata yang membingungkan, dan kalo mau tanya langsung ke kolom komentar yak. Thanks juga buat https://medium.com/better-programming/line-bot-with-python-and-heroku-tutorial-e8c296f3816f dan https://kawalcorona.com/ atas referensinya.
Komentar
Posting Komentar