如何删除Twilio中收到的所有邮件?

时间:2016-11-14 04:10:08

标签: bash 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帐户收到的所有邮件。如果我运行一个成功的删除程序,我不知道输出应该是什么样的。

1 个答案:

答案 0 :(得分:2)

在没有外部工具的情况下在bash中执行此操作(例如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解析的语言来做这件事是个好主意。