2016-11-14 19 views
1

Twilioの電話番号で受信したメッセージをループして、それぞれを削除するにはどうすればいいですか?Twilioで受信したすべてのメッセージを削除するにはどうすればよいですか?

私は、このセクションを参照してください。https://www.twilio.com/docs/api/rest/message#instance-delete

はバッシュで可能このですか?私はこれまでのところ、このコードを書いた

#!/bin/bash 

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

すべてのメッセージが私のTwilioアカウントが受け取ったこのリストのみ。私は成功した削除プログラムを実行すると、出力がどのように表示されるべきか分かりません。

+0

質問入力にサンプル入力と希望する出力を追加してください。あなたのコーディング努力を示してください。 – Cyrus

答えて

2

外部ツール(awkに似たJSON処理ツールであるjqのような)を使わずにbashでこれを行うのはおそらく少し信頼できないが、ここでは行く。

メッセージをカールすると、そのツールで出力が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をリッピングします。生のURIを取得するためにcutを使用します。次に、xargscurlを使用して、各メッセージURIに空の本文を投稿します。

これはページ分割を処理しないという点でかなり脆弱で、messages.jsonエンドポイントからの期待される出力以外は何も処理しません。空の本文投稿からの応答をチェックしませんメッセージを修正すると、出力はおそらく醜いでしょう。しかし、APIのようにすべてがうまくいくとすれば、それはうまくいくはずです。なぜなら、より堅牢なJSON構文解析を持つ言語でこれを行うのはいい考えです。

関連する問題