Twilio:在bot中发布每个消息时出现内部服务器错误

问题描述

在twilio whatsapp机器人中,每条发送请求的消息均出现内部服务器错误。我已经搜索了很多,找不到任何这样的解决方案:(

下面是我的PHP代码

    <?PHP

namespace App\Controller;

use Carbon\Carbon;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpClient\HttpClient;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Twilio\Rest\Client;

class CovidBotController extends AbstractController
{
    /**
     * @Route("/api/covid",name="covid_bot")
     */
    public function countryCasesSummary(Request $request)
    {
        $from = $request->request->get('From');
        $body = $request->request->get('Body');
        echo $body;

        $httpClient = HttpClient::create();
        $response = $httpClient->request("GET","https://covid19.mathdro.id/api/countries/$body");

        if ($response->getStatusCode() === 200) {
            $trackerResult = json_decode($response->getContent());

            $confirmed = $trackerResult->confirmed->value;
            $recovered = $trackerResult->recovered->value;
            $deaths = $trackerResult->deaths->value;
            $lastUpdate = Carbon::parse($trackerResult->lastUpdate)->diffForHumans();

            $message = "Here is the summary of the COVID-19 cases in " . '*'.$body.'*' . " as at " . $lastUpdate . "\n\n";
            $message .= "*Confirmed Cases:* $confirmed \n";
            $message .= "*Recovered Cases:* $recovered \n";
            $message .= "*Deaths Recorded:* $deaths \n";
            $message .= "*lastUpdate:* $lastUpdate \n";
            $this->postMessagetoWhatsApp($message,$from);
            return new JsonResponse([
                'success' => true,]);
        } else {
            $this->postMessagetoWhatsApp("Country *$body* not found or doesn't have any cases",$from);
            return new JsonResponse([
                'success' => false,]);
        }
    }
    public function postMessagetoWhatsApp(string $message,string $recipient)
    {
        $twilio_whatsapp_number = getenv('TWILIO_WHATSAPP_NUMBER');
        $account_sid = getenv("TWILIO_ACCOUNT_SID");
        $auth_token = getenv("TWILIO_AUTH_TOKEN");

        $client = new Client($account_sid,$auth_token);
        return $client->messages->create($recipient,array('from' => "whatsapp:$twilio_whatsapp_number",'body' => $message));
    }
}

我已经尝试了上述API,并且一切正常,在我的twilio dashbaord中,每个请求都标记为Internal server error:500。我也遇到类似“”的错误

'https:' is not recognized as an internal or external command,

,并且在twilio仪表板中出现以下错误

 The URI scheme,of the URI null,must be equal (ignoring case) to 'http','https','ws',or 'wss'

请帮助我:(

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)