Browse Source

update telegram

Tokumeikoi 4 years ago
parent
commit
ce19ebc97f

+ 3 - 7
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
         ]);

+ 20 - 0
app/Http/Controllers/User/TelegramController.php

@@ -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
+            ]
+        ]);
+    }
+}

+ 2 - 1
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';

+ 2 - 0
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');
         });
     }
 }

+ 10 - 14
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;
     }
 }