2016-11-14 43 views
1

如何循环Twilio电话号码收到的消息,并删除每个消息?如何删除Twilio中收到的所有消息?

我看到这个部分:https://www.twilio.com/docs/api/rest/message#instance-delete

在Bash是这可能吗?

我到目前为止已经写了这个代码:

#!/bin/bash 

curl -G https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXX/Messages.json \ 
    -d "Body=" \ 
    -u 'ACYYYYYYY' 

这只是所有邮件收到我的Twilio帐户列表。如果我运行成功的删除程序,我不知道输出应该是什么样子。

+0

请为样本输入添加样本输入和您想要的输出到您的问题。显示你的编码工作。 – Cyrus

回答

2

在没有外部工具的情况下(如jq,这是一个类似于awk的JSON处理工具)这样做可能有点......不可靠,但我们现在就去。

如果你卷曲消息,我们可以看到他们的工具,输出是一些JSON,并且每条消息都有一个我们需要的URI。我们也看到要编辑我们使用的消息curl XPOST <message_uri> -d "Body=" -u "<auth_string>" ...因此,如果我们选择每个消息的URI并使用curl在每个消息URI处张贴空的主体,我们将删除消息!

curl -G https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXX/Messages.json -u 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token' \ 
    | grep '"uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/' \ 
    | cut -d'"' -f 4 \ 
    | xargs -I {} curl -XPOST "https://api.twilio.com/"{} -d "Body=`-u 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token' 

显然您需要用您的帐户信息替换所有的ACXX字符串!

所以首先我们蜷缩Messages.json来获取我们的消息。我们使用grep来为每条消息找出URI。我们使用cut来获取原始URI。然后我们使用xargscurl为每个消息URI创建空主体。

这是非常脆弱的,它不处理分页,它绝对不处理任何东西,但期望从messages.json端点的输出,它不会对空主体帖子的响应进行任何检查编辑消息,输出结果可能会很糟糕。但是,如果所有事情都是API文档所说的那样,那么它应该可以工作,并且至少可以让您了解为什么可以使用具有更强大JSON解析功能的语言来做到这一点,这是一个好主意。

相关问题