12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- namespace App\Services;
- use App\Jobs\SendTelegramJob;
- use \Curl\Curl;
- class TelegramService {
- protected $api;
- public function __construct($token = '')
- {
- $this->api = 'https://api.telegram.org/bot' . config('v2board.telegram_bot_token', $token) . '/';
- }
- public function sendMessage(int $chatId, string $text, string $parseMode = '')
- {
- $this->request('sendMessage', [
- 'chat_id' => $chatId,
- 'text' => $text,
- 'parse_mode' => $parseMode
- ]);
- }
- public function getMe()
- {
- return $this->request('getMe');
- }
- public function setWebhook(string $url)
- {
- return $this->request('setWebhook', [
- 'url' => $url
- ]);
- }
- private function request(string $method, array $params = [])
- {
- $curl = new Curl();
- $curl->get($this->api . $method . '?' . http_build_query($params));
- $response = $curl->response;
- $curl->close();
- if (!$response->ok) {
- abort(500, '来自TG的错误:' . $response->description);
- }
- return $response;
- }
- public function sendMessageWithAdmin($message)
- {
- if (!config('v2board.telegram_bot_enable', 0)) return;
- $users = User::where('is_admin', 1)
- ->where('telegram_id', '!=', NULL)
- ->get();
- foreach ($users as $user) {
- SendTelegramJob::dispatch($user->telegram_id, $message);
- }
- }
- }
|