update telegram

This commit is contained in:
Tokumeikoi 2020-05-19 16:32:35 +08:00
parent ca650dd067
commit ce19ebc97f
5 changed files with 37 additions and 22 deletions

View File

@ -24,16 +24,12 @@ class ConfigController extends Controller
public function setTelegramWebhook(Request $request)
{
$telegramService = new TelegramService($request->input('telegram_bot_token'));
if (!$telegramService->getMe()) {
abort(500, '机器人Token有误');
}
if (!$telegramService->setWebhook(
$telegramService->getMe();
$telegramService->setWebhook(
config('v2board.app_url')
. '/api/v1/guest/telegram/webhook?access_token='
. md5(config('v2board.telegram_bot_token', $request->input('telegram_bot_token')))
)) {
abort(500, 'Webhook设置失败');
}
);
return response([
'data' => true
]);

View File

@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Services\TelegramService;
class TelegramController extends Controller
{
public function getBotInfo()
{
$telegramService = new TelegramService();
$response = $telegramService->getMe();
return response([
'data' => [
'username' => $response->result->username
]
]);
}
}

View File

@ -62,7 +62,8 @@ class UserController extends Controller
'commission_balance',
'plan_id',
'discount',
'commission_rate'
'commission_rate',
'telegram_id'
])
->first();
$user['avatar_url'] = 'https://cdn.v2ex.com/gravatar/' . md5($user->email) . '?s=64&d=identicon';

View File

@ -51,6 +51,8 @@ class UserRoute
$router->get ('/server/log/fetch', 'User\\ServerController@logFetch');
// Coupon
$router->post('/coupon/check', 'User\\CouponController@check');
// Telegram
$router->get ('/telegram/getBotInfo', 'User\\TelegramController@getBotInfo');
});
}
}

View File

@ -6,9 +6,9 @@ use \Curl\Curl;
class TelegramService {
protected $api;
public function __construct(string $token = '')
public function __construct($token = '')
{
$this->api = 'https://api.telegram.org/bot' . config('v2board.telegram_bot_token', $token) . '/';
$this->api = 'http://dev.v2board.com/bot' . config('v2board.telegram_bot_token', $token) . '/';
}
public function sendMessage(int $chatId, string $text, string $parseMode = '')
@ -22,29 +22,25 @@ class TelegramService {
public function getMe()
{
$response = $this->request('getMe');
if (!$response->ok) {
return false;
}
return $response;
return $this->request('getMe');
}
public function setWebhook(string $url)
{
$response = $this->request('setWebhook', [
return $this->request('setWebhook', [
'url' => $url
]);
if (!$response->ok) {
return false;
}
return $response;
}
private function request(string $method, array $params = [])
{
$curl = new Curl();
$curl->get($this->api . $method, http_build_query($params));
$curl->get($this->api . $method . '?' . http_build_query($params));
$response = $curl->response;
$curl->close();
return $curl->response;
if (!$response->ok) {
abort(500, '来自TG的错误' . $response->description);
}
return $response;
}
}