【发布时间】:2021-02-10 13:30:18
【问题描述】:
我想用Symfony5和ApiPlatform实现Twilio浏览器到浏览器的调用
我正在关注这个教程:
我有这个功能,这是我想要配置我的TwiML 应用程序的功能
/**
* @Route("/twilio/handle/twiml/{clientId}", name="twilio_handl_twiml")
* @param $clientId
* @return VoiceResponse
*/
public function handleTwiml($clientId): VoiceResponse
{
/** @var Client $client */
$client = $this->clientRepository->findOneBy(['id' => 11]);
$to = $client->getUser()->getLastName().$client->getUser()->getId();
$voiceResponse = new VoiceResponse();
$number = htmlspecialchars($to);
$dial = $voiceResponse->dial(null, array('callerId' => '+15017122661'));
if (isset($to)) {
if (preg_match("/^[\d\+\-\(\) ]+$/", $number)) {
$dial->number($number);
} else {
$dial->client($number);
}
} else {
$voiceResponse->say('There has been an issue. Thanks for calling!');
}
return $voiceResponse;
}
我已在"get" 部分中将其声明为我的一个实体上的自定义路由:
* "twilio_handl_twiml"={
* "path"="/twilio/handle/twiml/{clientId}",
* "controller"="TwilioController:class"
* },
现在该函数创建了一个正确的VoiceResponse 对象
但是当我调用这条路线时,我收到以下错误消息:
The controller must return a "Symfony\Component\HttpFoundation\Response" object but it returned an object of type Twilio\TwiML\VoiceResponse.
现在有谁知道为什么我不能从自定义路由返回任何我想要的 Response 吗?
我真的不明白为什么框架会将此声明为错误
如果有人能帮助我更好地理解这个错误,我将不胜感激
谢谢!
【问题讨论】:
-
Symfony 期望响应来自 Symfony 响应对象。对 Twilio 源代码的快速检查显示 VoiceResponse 不是从 Symfony Response 类派生的。我会寻找一个 Twilio Bundle 包,它可以使 Twilio 适应 Symfony。
-
感谢您的意见!我正在研究这个,到目前为止还没有找到太多的文档或解决方案,但无论如何都会在这里发布更新。谢谢
标签: symfony twilio twilio-api api-platform.com twilio-php