Skip to content

Instantly share code, notes, and snippets.

@reactmore
Last active August 10, 2021 06:23
Show Gist options
  • Save reactmore/10a81bd27f10eb4c7295d86dd74cd5c1 to your computer and use it in GitHub Desktop.
Save reactmore/10a81bd27f10eb4c7295d86dd74cd5c1 to your computer and use it in GitHub Desktop.
global_instalations_bot

instalasi Bot global order P-store

Require

  • Database MYSQL (Optional)
  • PHP 8
  • Root akses (VPS) / CPANEL File Manager jika Shared Host

cara penginstallan VPS/Hosting/Local

  1. Extrak Order_Bot_telegram.zip ke dalam folder root domain/sub.domain
  2. Opsional Silahkan Rename Folder bot jika di taro di root folder domain atau keluarkan dari folder file nya jika menggunakan sub domain (lihat bagian gambar domain utama dan sub domain untuk penampakan nya)

2.1 Domain Utama Image 2.2 Subdomain Image

  1. Buka terminal lalu pindah kan terminal ke folder instalasi Bot Telegram
  2. ketik composer install tunggu dan pastikan plugin terdownload (Beberapa plugin membutuhkan PHP terbaru atau minimal 8)
  3. Buka .env dengan text editor Ganti Configurasi yang ada disana dengan configurasi server kamu seperti url webhook , nama bot, api bot, root folder, database dll
  4. Jika ingin menggunakan database silahkan Import Bot.sql ke dalam database yang telah di buat lalu pada .env file silahkan isi configurasi database disana jika tidak menggunakan database harap kosongkan saja

Fungsi Database :

Merecord semua data user yang bergabung/interaksi personal chat dengan bot , menyimpan sessions

Cara Menjalankan Bot Webhook dan GetUpdate

Webhook

buka browser masuk ke https://domain.com/folderbot/public/manager.php?s=password&a=set

(jika menggunakan subdomain tanpa folder bot langsung ke folder public)

Petunjuk :

  • Parameter s : secret key yang di sudah di setting di file .env agar url hook bot tidak sembarangan di akses tanpa memasukan parameter key yang benar file tidak akan melanjutkan aksinya
  • parameter a : action controll Hook set untuk set webhook , unset untuk menghapus webhook , reset merestart webhook

GetUpdate

Method getUpdate dilakukan menggunakan Terminal CLI caranya buka terminal dan masuk ke folder public bot type

php getUpdate.php [enter]

maka terminal akan melakukan Looping dan Logging sampai terminal ditutup atau di hentikan

Setup Cronjob

buka cronjob di cpanel lalu setting waktu cronjob 1 sampai 10 mnt Silahkan Sesuikan Kebutuhan buat satu minut untuk group paste perintah ini

wget -O /dev/null https://domain.com/folderbot/cron.php

Jika Kalian Menggunakan VPS atau LocalServer Windows Sesuaikan dengan server masing2 Cronjobnya

Dimana Bisa Mengedit dan Menambahkan Command ?

  1. masuk ke folder commands/

Silahkan Edit atau Membuat Command Baru

Format Command Baru :

Buat File PHP dengan nama TestCommand.php

(Nama Wajib Menggunakan Command di bekang nya Misalnya ingin membuat command /beli pada bot maka nama command nya adalah BeliCommand.php)

  1. Isi TestCommand.php dengan :
<?php


declare(strict_types=1);


namespace Longman\TelegramBot\Commands\UserCommands;

use Longman\TelegramBot\Commands\UserCommand;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\Request;
use Longman\TelegramBot\Entities\Keyboard;
use Longman\TelegramBot\Entities\KeyboardButton;
use Longman\TelegramBot\Entities\InlineKeyboard;
use Longman\TelegramBot\Entities\InlineKeyboardButton;
use LitEmoji\LitEmoji;
use TelegramBot\SupportBot\Helpers;

/**
 * User "/test" command
 */
class TestCommand extends UserCommand
{
    /**
     * @var string huruf kecil
     */
    protected $name = 'test';

    /**
     * @var string
     */
    protected $description = 'Jelaskan tentang command ini';

    /**
     * @var string Versi Command
     */
    protected $version = '0.2.0';

    /**
     * @var string Sama kan dengan nama command
     */
    protected $usage = '/test';

    /**
     * @var bool 
     * True artinya command hanya berjalan di private chat /personal bot
     */
    protected $private_only = true;

   
    public function execute(): ServerResponse
    {

        // Mengambil Respon Raw Pesan dari user ke webhook
        $message     = $this->getMessage();

        $command_str = trim($message->getText(true));
        $user_id = $message->getFrom()->getId();
        $chat_id = $message->getChat()->getId();

        // Mengambil Nama Bot dari ENV
        $username = getenv('TG_BOT_NAME');


        // Pesan yang dikirim bot ketika commad di tekan
        $out_text = "Hello {$message->getChat()->tryMention(true)} \n";
        $out_text .= "Selamat Datang di Bot {$username}\n\n";
      

        return Request::sendMessage([
            'text' => LitEmoji::encodeUnicode($out_text),
            'chat_id' => $chat_id,
            'parse_mode' => 'markdown',


        ]);
    }
}


?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment