2016-11-14 8 views
1

Wie kann ich die von einer Twilio-Telefonnummer empfangenen Nachrichten durchlaufen und löschen?Wie lösche ich alle in Twilio empfangenen Nachrichten?

Ich sehe diesen Abschnitt: https://www.twilio.com/docs/api/rest/message#instance-delete

Ist das möglich in Bash?

ich diesen Code geschrieben habe bisher:

#!/bin/bash 

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

Diese nur listet alle Nachrichten mein Twilio Konto erhalten. Ich weiß nicht, wie die Ausgabe aussehen soll, wenn ich ein erfolgreiches Löschprogramm ausführe.

+0

Bitte fügen Sie Beispieleingabe und Ihre gewünschte Ausgabe für diese Beispieleingabe zu Ihrer Frage hinzu. Zeigen Sie Ihre Programmieranstrengungen. – Cyrus

Antwort

2

Doing dies in bash ohne externe Tools (wie jq, die ein JSON-Bearbeitungswerkzeug ähnlich awk ist) ist wahrscheinlich ein bisschen ... unzuverlässig, aber hier gehen wir.

Wenn Sie Ihre Nachrichten locken, können wir mit ihrem Tool sehen, dass die Ausgabe ein JSON ist und dass jede Nachricht einen URI hat, den wir brauchen. Wir sehen auch, dass wir curl XPOST <message_uri> -d "Body=" -u "<auth_string>" verwenden, um eine Nachricht zu redigieren ... Wenn wir also den URI für jede Nachricht auswählen und curl verwenden, um bei jeder Nachrichten-URI einen leeren Text zu veröffentlichen, werden wir die Nachrichten löschen!

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' 

Offensichtlich müssen Sie all ACXX Strings mit Ihrer Kontoinformation ersetzen!

Zuerst locken wir Message.json, um unsere Nachrichten zu erhalten. Wir verwenden grep, um den URI für jede Nachricht herauszureißen. Wir verwenden cut, um nur den rohen URI zu erhalten. Dann verwenden wir xargs und curl, um den leeren Nachrichtentext an jeden Nachrichten-URI zu senden.

Dies ist ziemlich brüchig, da es keine Seitennummerierung behandelt, es behandelt absolut nichts als erwartete Ausgabe von dem Endpunkt messages.json, es überprüft die Antwort von dem leeren Textkörper wann nicht Nachrichten zu redigieren, wird die Ausgabe wahrscheinlich auch hässlich sein. Wenn jedoch alles so ist, wie es die API-Dokumentation sagt, sollte es funktionieren und Ihnen zumindest einen Startplatz geben, um zu sehen, warum es vielleicht eine gute Idee ist, dies in einer Sprache zu tun, die robusteres JSON-Parsen hat.

Verwandte Themen