2016-03-30 8 views
0

Eine meiner Apps macht Twilio REST API-Aufrufe seit mehr als einem Jahr ohne Probleme. Für die letzte Woche habe ich diesen Fehler konsequent jetzt bekommen:Twilio REST API HTTP 400 Fehler: "SendDigits muss weniger als 32 Zeichen lang sein"

HTTP 400-Fehler: { "message": "SendDigits muss weniger als 32 Zeichen lang sein", "Status": 400}

Meine Anfrage sieht aus wie dies (einige Informationen redigiert): (Methode = 'POST', uri = 'https://api.twilio.com/2010-04-01/Accounts/xxxxxxxxxxxxxxxxxx/Calls.json', ** kwargs = {'Auth': ('xxxxxxxxxxxxxxxx', 'xxxxxxxxxxxxx'), 'Daten': {'Von': ' + 1415DDDDDDD ',' SendDigits ':' ww0w1234w16w6w415DDDDDDD # w415DDDDDDD # ',' An ':' + 1415DDDDDDD ',' Url ':' http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient ',' Kopfzeilen ': {' Akzeptieren ':' application/json ',' Akzeptieren -Charset ':' utf-8 ',' Inhaltstyp ':' application/x-www-form-urlencoded ',' Benutzeragent ':' tiliio-python/3.6.13 (Python 2.7.6) '} })

Es ist, als ob die maximale Länge von SendDigits kürzlich geändert wurde, obwohl ich nirgends Dokumentation von diesem finden kann.

Wie kann ich das umgehen? Ändern des Wertes der SendDigits ist nicht wirklich eine Option für mich.

Antwort

1

Von Twilio der Support-Mitarbeiter: „. Wir rollten vor ein paar Tagen eine Änderung hin, dass die maximale Länge von SendDigits auf 32 Zeichen beschränkt Für eine Reihe von Gründen, die wir diese Grenze implementieren mussten“

Aktualisierung: Gelöst. Hier ist mein Python-Code:

call=client.calls.create(to=dial_number,from_="+14159999999",url="http://twimlets.com/echo?Twiml=%3CResponse%3E%0A%20%20%20%20%3CPlay%20digits%3D%22"+urllib.quote_plus(send_digits)+"%22%3E%3C%2FPlay%3E%0A%3C%2FResponse%3E") 

wo send_digits ist die Zeichenfolge von Ziffern, die Sie senden möchten (z Tastatureingaben). In dieser Problemumgehung kann send_digits länger als 32 Zeichen sein.

2

Megan von Twilio hier.

Vielen Dank für Ihr Feedback, es tut mir leid für die Probleme, die Sie erleben.

Es gibt einen Workaround, um <Play digits=""> in TwiML zu verwenden, anstatt es als POST-Parameter zu übergeben, dies sollte auch in der Lage sein, ein äquivalentes Ergebnis zu erreichen. Beispiele <Play> Verwendung finden Sie unter:

https://www.twilio.com/docs/api/twiml/play#attributes-digits

Und ein Beispiel in Python (unter Verwendung der Zeichenfolge von oben) etwas aussehen würde:

def play_digits(): 
    r = twiml.Response() 
    r.play(digits="ww0w1234w16w6w415DDDDDDD#w415DDDDDDD#") 

    return str(r) 

Bitte lassen Sie mich wissen, wenn Sie diese finden nützlich sein.

+0

Können Sie Beispiel-Python-Code veröffentlichen? –

+1

Beispiel in Python hinzugefügt! –

Verwandte Themen