问题描述
在twilio whatsapp机器人中,每条发送请求的消息均出现内部服务器错误。我已经搜索了很多,找不到任何这样的解决方案:(
<?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 (将#修改为@)