Home » Tekno » Mengambil Data Google Sheets dengan Bot Telegram (+ Python)

Mengambil Data Google Sheets dengan Bot Telegram (+ Python)

Telegram bot read Google sheet

Chapter IV : Mengambil data Google Sheets dengan Python & Bot Telegram.

Karena banyaknya pesan masuk yang menanyakan mengenai bot Telegram untuk mengambil data dari Google Sheets, baik melalui feedback ataupun data Search Console blog dicoffeean, pada postingan kali ini saya akan sharing sedikit mengenai tema tersebut.


Membuat Project Baru di Google Console

Saya yakin semuanya pasti sudah punya Akun Google?

Hal pertama yang harus dilakukan agar bisa mengakses data Google Sheets dari program eksternal yaitu dengan membuat project baru di alamat berikut ini:
https://console.developers.google.com

Jika anda baru pertama kali mengakses Google Cloud, maka tampilannya akan seperti gambar berikut ini.

Silahkan centang persyaratan layanan dan klik tulisan “Setuju dan Lanjutkan”.

Google Cloud Platform Welcome!

Langkah selanjutnya yaitu membuat project baru.

Membuat Project Baru Google Console

Lalu isikan nama project. Sebagai contoh disini saya membuat project dengan nama: dicoffeeans.

Google Cloud Project: dicoffeeans

Selanjutnya, klik pada form search dan ketikan kata kunci “Google Sheets API” dan “Google Drive API”.

Google Sheets API

Aktifkan kedua API nya seperti gambar di bawah ini.

Mengaktifkan Google Sheets API pada Project

Setelah mengaktifkan API, kita memerlukan kredensial untuk dapat mengakses layanan API dari Google.

Klik tombol: “Buat Kredensial”

Kita akan disuguhkan dengan beberapa pertanyaan dari Google, sebagai contoh berikut ini pilihan yang saya gunakan pada postingan ini.

Pertanyaan Kredensial Google API Console

Klik tombol “Kredensial apa yang saya butuhkan?”

Langkah selanjutnya adalah mengisi: nama akun layanan, peran dan jenis kunci. Silahkan isi sesuai keinginan anda, untuk jenis kunci saya memilih JSON.

Agar kita mempunyai akses penuh, pada pilihan peran silahkan pilih:
Project > Editor

Project Editor Google API Console

Klik lanjutkan, jika berhasil anda akan mendapatkan kunci berupa file JSON. Silahkan dibuka dengan teks editor kesayangan anda.

Berikut, contoh kunci JSON milik saya.

Abaikan parameter yang lain, untuk keperluan ini yang kita perlukan hanyalah client_email.

Silahkan catat / copy / simpan email tersebut.

Google API Key: JSON

Sampai tahap ini persiapan untuk mengakses API Google sudah selesai.


Memberikan Akses Google Sheets ke Client Email Project

Pilih Google Sheets yang akan kita akses, sebagai contoh berikut ini file Google Sheets saya dengan nama: Dicoffeean_bots.

Perhatikan nama file dan nama Sheet seperti tanda merah pada gambar di atas. Karena nama-nama tersebut akan kita masukkan pada python code nantinya.

Sekarang klik Bagikan lalu masukkan client_email yang tadi kita simpan. Jangan lupa, beri akses penuh untuk mengedit.


Instalasi Modul Python yang Diperlukan

Modul yang diperlukan dalam artikel ini antara lain:

  1. gspread
  2. oauth2client

Untuk menginstall keduanya, cukup jalankan perintah berikut ini:

pip install gspread oauth2client

Jika menggunakan python3, maka:

pip3 install gspread oauth2client

Note: disini kebetulan saya menggunakan python3.


Membuat Kode Python untuk Akses Google Sheets

Buat file baru dengan nama spreadsheet.py misalnya, lalu salin kode berikut ini.

# Python code untuk akses Google Spreadsheets
# By dicoffeean
# --------------------------------------------
import gspread
from oauth2client.service_account import ServiceAccountCredentials

def readMyGsheet():
    alamatURL = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
    kredensial = ServiceAccountCredentials.from_json_keyfile_name('dicoffeeans-7ab6a61b1a54.json', alamatURL)
    client = gspread.authorize(kredensial)

    # Membaca Sheet1 pada Google Spreadsheets untuk file Dicoffeean_bots:
    sheet = client.open('Dicoffeean_bots').sheet1
    dicoffeean_data = sheet.get_all_records()
    
    print(dicoffeean_data)

readMyGsheet()

Penjelasan :

  • Simpan file spreadsheet.py dan file JSON di folder yang sama
  • Ganti dicoffeeans-7ab6a61b1a54.json sesuai dengan nama file JSON anda
  • Ganti juga baris kode berikut dengan nama file Google Sheets dan nama sheet1 anda masing-masing : client.open('Dicoffeean_bots').sheet1

Sekarang, saatnya kita tes python script diatas apakah berfungsi dengan baik?

Karena saya menggunakan python3, jadi perintahnya adalah:

python3 spreadsheet.py

Output-nya seperti gambar berikut ini:

Output 1 : Format JSON Google Spreadsheets
Output 1 – Format JSON

Untuk mempermanis output yang diinginkan, kita bisa menggunakan modul analisis data pada python, salah satunya yaitu: pandas: “Python Data Analysis Library”.

Silahkan di explore sendiri ya …


Mengambil data Google Sheets dengan Bot Telegram

Step terakhir yaitu menggunakan bot telegram untuk mengambil data dari Google Spreadsheets dengan kode python yang telah kita buat.

Bot Telegram disini hanyalah sebagai perantara, yang bekerja sebenarnya adalah python script yang kita buat di atas. Yakni python script untuk mengakses dan membaca Google Spreadsheets.

Baiklah, agar sedikit rapi kita akan menambahkan modul pandas pada kode python tadi. Jadi install pandas dengan perintah berikut ini.

pip3 install pandas

Sekarang kita impor modul pandas dan edit kode python diatas menjadi seperti ini.

# Python code untuk akses Google Spreadsheets
# By dicoffeean
# --------------------------------------------
import gspread
import pandas as pd
from oauth2client.service_account import ServiceAccountCredentials

def readMyGsheet():
    alamatURL = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
    kredensial = ServiceAccountCredentials.from_json_keyfile_name('dicoffeeans-7ab6a61b1a54.json', alamatURL)
    client = gspread.authorize(kredensial)

    # Membaca Sheet1 pada Google Spreadsheets untuk file Dicoffeean_bots:
    sheet = client.open('Dicoffeean_bots').sheet1
    dicoffeean_data = sheet.get_all_records()
   
    # Konvert menjadi DataFrame  
    df = pd.DataFrame(dicoffeean_data) 
    
    # Seleksi columns label
    print(df[['ID', 'Name', 'Jobs']]) 

readMyGsheet()

Output-nya seperti dibawah ini, terlihat lebih rapi tentunya.

Output 2 : Format Tabel Google Spreadsheets
Output 2 – with Pandas

Yang terakhir dari saya, berikut contoh penerapannya dengan Bot Telegram (source code yang ini nyusul ya!).

Penerapan membaca Google Sheets dengan Bot Telegram
Baca G-Sheets via Telegram bot

Demikianlah artikel singkat mengenai: cara mengambil data Google Spreadsheets dengan Python & Bot Telegram.

Selamat mencoba!

Join Channel Telegram untuk mendapatkan pembaruan artikel lebih cepat :

dicoffeean.com Telegram Channels

Artikel terkait:

Buat Bot Telegram hanya 50 ribu? Klik disini : Jasa Pembuatan Bot Telegram

9 Komentar

  1. Yang terakhir dari saya, berikut contoh penerapannya dengan Bot Telegram (source code yang ini nyusul ya!).
    Source codenya sdh ada artikelnya mas?

    1. Halo kak, aku mulai bingung dari yg phyton2 itu:(
      boleh tolong dijelasin nggak? ini harus install software apa dulu gitu gak?
      terima kasih sebelumnyaa

    2. Min untuk bagian kolom tulisan nya di tengahankan apa bisa ya min, saya cari cara nya kok ngk ketemu mohon solusi nya

    3. min untuk source codenya kira kira kapan ya di publish?, atau ada refrensi kah untuk source kode penerapan dengan Bot Telegram

    4. Kak ini untuk ambil data text saja? kalau ingin menampilkan gambar dari id dan link img yang ada di googlesheet bisa?

Tinggalkan Komentar

Field bertanda * wajib diisi

42 − = 39