Menghubungkan Bot Telegram dengan Yelp Fusion API untuk Menemukan Tempat Makan

3 min read 24-08-2024
Menghubungkan Bot Telegram dengan Yelp Fusion API untuk Menemukan Tempat Makan

Dengan semakin populernya penggunaan bot di platform seperti Telegram, semakin banyak pula peluang untuk mengembangkan aplikasi yang dapat membantu pengguna. Salah satu aplikasi yang menarik adalah bot yang dapat membantu pengguna menemukan tempat makan menggunakan Yelp Fusion API. Pada artikel ini, kita akan membahas langkah-langkah untuk menghubungkan bot Telegram dengan Yelp Fusion API agar Anda bisa menemukan tempat makan dengan lebih mudah.

1. Persyaratan Awal

Sebelum memulai, pastikan Anda telah memenuhi persyaratan berikut:

  • Akun Telegram dan aplikasi Telegram terinstal.
  • Akun Yelp dan akses ke Yelp Fusion API.
  • Pengetahuan dasar tentang pemrograman, khususnya bahasa pemrograman Python.
  • Beberapa pustaka Python yang diperlukan seperti python-telegram-bot dan requests.

2. Mendaftar untuk Yelp Fusion API

Langkah pertama adalah mendaftar untuk mendapatkan akses ke Yelp Fusion API.

  1. Buka situs Yelp Developer dan buat akun jika Anda belum memiliki satu.
  2. Setelah mendaftar, kunjungi bagian "Create App" untuk membuat aplikasi baru.
  3. Isi formulir yang diperlukan dan setelah itu Anda akan mendapatkan API Key yang akan digunakan dalam kode Anda.

3. Membuat Bot Telegram

Setelah akun Yelp Anda siap, langkah berikutnya adalah membuat bot di Telegram.

  1. Buka aplikasi Telegram dan cari bot bernama BotFather.
  2. Kirim pesan /newbot untuk memulai proses pembuatan bot baru.
  3. Ikuti petunjuknya untuk memberikan nama dan username untuk bot Anda.
  4. Setelah selesai, Anda akan mendapatkan token API bot yang akan digunakan dalam kode Anda.

4. Instalasi Pustaka Python yang Diperlukan

Pastikan Anda telah menginstal pustaka yang diperlukan dengan menjalankan perintah berikut di terminal:

pip install python-telegram-bot requests

5. Mengatur Kode Bot

Sekarang kita dapat mulai menulis kode untuk bot kita. Di bawah ini adalah contoh kode sederhana untuk menghubungkan bot Telegram dengan Yelp Fusion API.

import logging
import requests
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext

# Atur logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)

# Ganti token_bot_anda dengan token bot Telegram
TOKEN = 'token_bot_anda'
# Ganti api_key_yelp_anda dengan API Key Yelp
YELP_API_KEY = 'api_key_yelp_anda'


def start(update: Update, context: CallbackContext) -> None:
    update.message.reply_text('Halo! Kirim perintah /find untuk menemukan tempat makan.')


def find_place(update: Update, context: CallbackContext) -> None:
    if len(context.args) < 1:
        update.message.reply_text('Tolong berikan nama atau jenis makanan yang ingin Anda cari setelah perintah /find.')
        return
    
    # Ambil argumen pencarian
    search_query = ' '.join(context.args)
    
    # URL untuk mengakses Yelp Fusion API
    yelp_url = 'https://api.yelp.com/v3/businesses/search'
    
    headers = {
        'Authorization': f'Bearer {YELP_API_KEY}',
    }
    
    params = {
        'term': search_query,
        'location': 'Indonesia',  # Ganti dengan lokasi yang diinginkan
        'limit': 5
    }
    
    # Mengirim permintaan ke Yelp API
    response = requests.get(yelp_url, headers=headers, params=params)
    
    if response.status_code == 200:
        data = response.json()
        businesses = data.get('businesses')
        if businesses:
            response_message = 'Tempat makan yang ditemukan:\n\n'
            for business in businesses:
                response_message += f"Nama: {business['name']}\n"
                response_message += f"Alamat: {', '.join(business['location']['display_address'])}\n"
                response_message += f"Rating: {business['rating']}\n"
                response_message += f"Link: {business['url']}\n\n"
            update.message.reply_text(response_message)
        else:
            update.message.reply_text('Tidak ada tempat yang ditemukan.')
    else:
        update.message.reply_text('Terjadi kesalahan saat menghubungi Yelp API.')


def main():
    # Inisialisasi Updater dan Dispatcher
    updater = Updater(TOKEN, use_context=True)
    dispatcher = updater.dispatcher

    # Tambahkan handler untuk perintah
    dispatcher.add_handler(CommandHandler('start', start))
    dispatcher.add_handler(CommandHandler('find', find_place))

    # Mulai bot
    updater.start_polling()
    updater.idle()


if __name__ == '__main__':
    main()

6. Menjalankan Bot

Setelah Anda selesai menulis kode, simpan file dengan ekstensi .py, misalnya, yelp_telegram_bot.py. Kemudian jalankan script tersebut menggunakan terminal:

python yelp_telegram_bot.py

Bot akan mulai beroperasi. Anda dapat mencarinya di Telegram dengan username yang telah Anda pilih sebelumnya dan mengirimkan perintah /start untuk memulai. Setelah itu, Anda bisa mencari tempat makan dengan menggunakan perintah /find diikuti dengan nama makanan yang Anda inginkan.

7. Pengujian dan Debugging

Setelah menjalankan bot, lakukan pengujian dengan berbagai jenis perintah dan cek apakah bot merespons dengan benar. Pastikan semua informasi yang ditampilkan relevan dan akurat. Jika Anda menghadapi masalah, periksa log yang dihasilkan oleh bot untuk membantu menemukan kesalahan.

8. Penutup

Menghubungkan bot Telegram dengan Yelp Fusion API memungkinkan Anda untuk menyediakan informasi terkait tempat makan dengan mudah dan cepat. Dengan mengikuti langkah-langkah di atas, Anda sudah memiliki bot dasar yang dapat dikembangkan lebih lanjut untuk mencakup lebih banyak fitur, seperti filter berdasarkan lokasi yang lebih spesifik, jenis makanan, atau penilaian.

Selamat mencoba dan semoga sukses dalam proyek bot Anda!