diff --git a/app/Http/Controllers/Admin/ConfigController.php b/app/Http/Controllers/Admin/ConfigController.php index 86a06e28..0042cef8 100755 --- a/app/Http/Controllers/Admin/ConfigController.php +++ b/app/Http/Controllers/Admin/ConfigController.php @@ -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 ]); diff --git a/app/Http/Controllers/User/TelegramController.php b/app/Http/Controllers/User/TelegramController.php new file mode 100644 index 00000000..ff91e3de --- /dev/null +++ b/app/Http/Controllers/User/TelegramController.php @@ -0,0 +1,20 @@ +getMe(); + return response([ + 'data' => [ + 'username' => $response->result->username + ] + ]); + } +} diff --git a/app/Http/Controllers/User/UserController.php b/app/Http/Controllers/User/UserController.php index 3f5903a0..d7068aad 100755 --- a/app/Http/Controllers/User/UserController.php +++ b/app/Http/Controllers/User/UserController.php @@ -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'; diff --git a/app/Http/Routes/UserRoute.php b/app/Http/Routes/UserRoute.php index 09f5a8fe..f8d216cb 100644 --- a/app/Http/Routes/UserRoute.php +++ b/app/Http/Routes/UserRoute.php @@ -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'); }); } } diff --git a/app/Services/TelegramService.php b/app/Services/TelegramService.php index 4c04919f..913591fd 100644 --- a/app/Services/TelegramService.php +++ b/app/Services/TelegramService.php @@ -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; } }