我们正在尝试在我们的应用程序中实现 Twilio 的聊天。
我们当前的任务包括显示当前用户的所有对话。如下图所示:
如您所见,我们显示了 4 项内容:头像、用户名、最后一条消息和最后一条消息的时间(暂时忽略粗体。这与用户是否阅读了最后一条消息有关)
使用我从 Twilio 的 API 收集到的信息,可以通过以下步骤完成:
identity
从我们的后端其他用户+的,得到的名称和头像。如您所见,这意味着多次调用 (3-4) Twilio 的 API,只是为了获取有关频道的最新信息。
我的问题是:我们可以减少对 Twilio 的 API 的调用吗?(忽略对我们后端的调用,这里不计算在内)
另外,我们可以在 twilio 的服务器上存储更多数据吗?喜欢用户名和头像
我们正在开发一个聊天系统,用户可以在其中多个聊天室,我希望能够首先显示最近的频道。
这可以是发送最后一条消息的时间,也可以是未读消息的数量,只要有一定的顺序并且我不需要浏览频道的所有页面并获取额外的元数据来对其进行排序手动。
我在文档中看不到任何选项,即使响应元数据的“键”设置为“通道”,我也无法找出可以更改它的查询参数。
似乎频道总是按随机唯一的频道 ID 排序返回,因此对于几乎每个用例,您都需要获取所有频道并手动排序。是这样还是我错过了什么?
我们正在使用 Twilio Programmable Chat JavaScript SDK (v. 4.0.0) 来构建聊天应用程序。
我们为每个用户设置了多个频道,我们通过messageAdded
-Event在每个频道上监听消息。
断开连接后,客户端正常重新连接,但不会触发同时发送的消息的事件。
例子:
我们期望在客户端重新建立连接后,我们将获得“丢失”消息/创建的通道的事件;特别是在文档状态下(可能仅适用于客户,但有什么意义呢?):
不需要在网络掉线时实现关闭/创建循环?恢复网络后,SDK 会自动重新连接。
(3)我们发现的另一个问题是,有时客户端无法在所有的重新连接,这导致了很多Retrier attempt is already in progress
,Twilsock: request timeout
错误消息。对此有何想法?
因此,我已将 WHMCS 设置为将 Twilio 与新模块一起使用,但是,我已成功完成设置并将 SMS 消息发送给澳大利亚的客户,因为我有一个 AUS 号码连接到我的 Twilio 帐户。
问题是,例如,当美国客户注册短信失败并说“无法发送短信”时,日志对这个 Twilio 新手没有帮助。
示例如下:从摘要页面向用户电话号码 (+1310xxxxxxx) 发送短信的过程失败 - Twilio(公司名称)
如果我要发送一条消息说西班牙,它似乎有效,这很奇怪。
我也尝试过+34,它发送了。似乎也适用于英国 +44。
我已将 GEO 选项设置为在 Twilio 中正常工作,但错误消息不会出现在我的 Twilio 日志中,只是内部日志。
这是模块日志。
我只是编辑了文本以向您提供所显示的内容。
要求:
Array
(
[To] => +1310xxxxxxx
[Body] => test
[From] => Company name
)
Run Code Online (Sandbox Code Playgroud)
回复
The 'To' phone number: +1310xxxxxxx, is not currently reachable using the 'From' phone number: Company name via SMS.
Run Code Online (Sandbox Code Playgroud)
因此,目前发往美国的 SMS 消息不起作用,但我不能代表其他所有国家/地区,我在这里可以做什么,或者如何正确设置我的 Twilio 帐户以确保我的 SMS 消息能够发送?
非常感谢。
嗨,我正在通过在 android 中使用 Twilio 编程聊天在聊天基础应用程序中工作,但面临一个奇怪的问题。我有底部导航,我显示聊天的总未读计数和聊天列表,用户可以在其中看到每个聊天的个人未读计数。当用户单击个人时未读聊天然后未读计数重置为零,这完美地工作,但是当我返回聊天列表并突然收到新消息时,聊天列表屏幕更新为新消息,但未读计数为零。底部导航的总通知计数是工作正常。几秒钟后,当新消息再次收到时,它的个人计数被接收并完美地工作
问题是当用户返回聊天列表并在两三秒内收到新消息时,未读计数在 10 秒或更长时间后返回 null 或零,个人聊天的未读计数工作完美。以下是个人阅读计数的代码示例
// indivisual read count get on channel
subscribedChannel.getUnconsumedMessagesCount(object : CallbackListener<Long>() {
override fun onSuccess(count: Long?) {}})
Run Code Online (Sandbox Code Playgroud)
底部导航总阅读次数的代码
chatClient!!.channels.getUserChannelsList(object : CallbackListener<Paginator<ChannelDescriptor>>() {
internal var countCustomer: Long = 0
internal var countProvider: Long = 0
override fun onSuccess(channelDescriptorPaginator: Paginator<ChannelDescriptor>) {
for (descriptor in channelDescriptorPaginator.items) {
// if (appPreferences.getBoolean(Common.IS_LOGIN))
val splitData=descriptor.uniqueName.split("_")
// Log.e(TAG,"unique name is "+descriptor.uniqueName)
if (splitData.size==1)
{
if (splitData[0] == session.userId)
{
Log.e(TAG,"unique name is size one"+descriptor.uniqueName)
countCustomer += descriptor.unconsumedMessagesCount
} …
Run Code Online (Sandbox Code Playgroud) 我正在快速使用Twilio可编程聊天,并且客户端最多需要5秒钟才能连接。
这是代码:
let start = Date()
TwilioChatClient.chatClient(withToken: token, properties: nil, delegate: self) {
(result, chatClient) in
print("\(Date().timeIntervalSince(start)) seconds")
}
Run Code Online (Sandbox Code Playgroud)
这将打印3.5到5秒之间的值。
连接后,其他api的运行速度非常快,例如发送消息0.2秒。
那有意义吗?
我想检索在其聊天记录中与给定关键字匹配的所有频道。Twilio中有这样的API吗?
我有一个用户订阅和邀请频道的列表,我在客户端上添加了 messageAdded 事件,以便它可以收听所有频道(订阅)。现在需要的是我希望用户能够在用户被邀请但尚未加入的频道上看到新消息通知。
有没有办法做到这一点?
PS:出现这个要求是因为每个用户都有一个聊天频道限制,我们只能将有限的用户添加到聊天频道,或者必须不断地从频道中删除成员。
谢谢。
嗨,我正在使用 Twilio Client JS 库和 Task Router JS SDK 开发 chrome 扩展。我成功注册了 Twilio 设备并在后台脚本上接收就绪事件。我还设置了任务路由器工作程序并接收事件。当我拨打电话reservation.accepted 事件触发。当我运行 device.connect() 函数时,我收到以下错误。以下是收到的事件日志。我还向运行此扩展程序的站点授予了麦克风权限。我正在使用注入页面策略并在 iframe 中加载扩展内容并附加到正文。我也在后台脚本控制台中收到此警告。 警告:无法设置音频输出设备。错误:找不到设备:默认
需要帮忙
device.on('error', (error) => {
console.log("Device on error:", error);
});
Run Code Online (Sandbox Code Playgroud)
javascript google-chrome-extension twilio twilio-taskrouter twilio-programmable-chat
我正在尝试为 Twilio 可编程聊天工具编写 C# 包装器。提供的库适用于 JS 客户端。我认为使用像 ClearScript (V8) 这样的工具可以让我根据需要包装 js。
网站上的示例代码是
const Chat = require('twilio-chat');
// Make a secure request to your backend to retrieve an access token.
// Use an authentication mechanism to prevent token exposure to 3rd parties.
const accessToken = '<your accessToken>';
Chat.Client.create(accessToken)
.then(client => {
// Use Programmable Chat client
});
Run Code Online (Sandbox Code Playgroud)
所以在我初始化之后
using (var engine = new V8ScriptEngine())
{
engine.Execute(@"
const Chat = require('twilio-chat.js');
const token = 'my token';
Chat.Client.create(token).then(client=>{
});
");
}
Run Code Online (Sandbox Code Playgroud)
“require”行上的程序错误,错误要求未定义。我读过 require …
twilio ×8
twilio-api ×4
android ×2
javascript ×2
c# ×1
clearscript ×1
php ×1
reactjs ×1
swift ×1