android - 如何在 Flutter 中使用 Twilio API 连接调用方和接收方
问题描述
我刚刚在我的颤振项目中设置了 Twilio API,我已经能够拨打国际电话号码,但是我遇到了一个问题,我希望有人能指出我正确的方向。当我的颤振应用程序发出呼叫并成功注册为接收者手机上的呼叫时,我如何连接我的颤振应用程序以在接听电话后与接收者进行实时通话?
下面是执行 API 调用的代码
Future<http.Response> accessTwilioAPI() async {
http.Response response = await http.post(
Uri.https("api.twilio.com",
"/2010-04-01/Accounts/ACCOUNT_SID_GOES_HERE/Calls/.json"),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic ' +
toAuthCredentials("ACCOUNT_SID_GOES_HERE",
"AUTH_TOKEN_GOES_HERE")
},
body: {
//body goes here
"From": "TWILIO_NUMBER",
"To": "RECIPIENT",
"Url":
"TWIML_BIN_URL",
"duration": "30",
},
);
print(response.body);
}
更新所以我已经能够建立双向通信,但它还不是我想要的。我所做的是首先拨打我的电话号码(不是 twilio 电话号码),然后我使用 Dial TwiML 动词将呼叫连接到另一个人,它有效,但这种方法的限制是呼叫者必须接听电话在它被路由到接收器之前。
解决方案
Twilio 开发人员布道者在这里。
您可以使用Twilio Voice SDK直接从本机移动应用程序拨打电话。有适用于 iOS、Android 和 JavaScript 的 SDK。Voice SDK 允许您在应用程序中拨打和接听电话,并且可以连接到本机 UI,例如 iOS 上的 CallKit。
就 Flutter 而言,您可以自己集成平台(这个Stack Overflow 答案有描述如何在 Android 中这样做)或查看社区为原生 SDK 构建的 Flutter 包装器。有flutter_twilio_voice
或flutter_voice
。
响应您到目前为止的代码,这是一个坏主意,原因有几个。首先,正如您所发现的,调用是在应用程序的上下文之外进行的。其次,从应用程序内部发出 API 请求意味着您的应用程序将包含或公开您的 API 凭证。如果恶意用户要反编译应用程序,他们可能会提取您的凭据并滥用您的帐户。
推荐阅读
- php - 使用 phpmyadmin 的数据库在网站上搜索
- python - 从子类调用父方法的正确方法
- r - R SelectizeInput - ChoiceValues ChoiceNames 的类似解决方案?
- javascript - 在在线报告中选择“所有筛选器”时,Power BI SDK 不获取或设置筛选器
- php - Laravel Hash::check() 使用不同的盐和前缀
- c++ - 在 C++ 中为错误处理声明局部方法变量是否会带来内存或性能成本?
- apache-spark - Pyspark - 希望创建双列的规范化版本
- apache-kafka - 如何在 kafka 控制台生产者中添加键序列化器和值序列化器
- node.js - Github Actions 部署 docker 打包 | 错误:未找到:python
- python - 删除数据框中的“Specials Unicode”