मैं कुछ ऐसा करने की कोशिश कर रहा हूं जो मुझे विश्वास है कि इतना आसान है और जब मैं डाकिया के साथ अपने अंतिम बिंदु का परीक्षण करता हूं तो यह ठीक काम करता है, हालांकि जब साइट चालू होती है, तो मुझे "त्रुटि" मिलती है

ये मेरी वर्तमान सेटिंग्स हैं:

twilio==6.29.1
Django==2.0.7
djangorestframework==3.9.4
Python 3.6.8

ट्विलियो के साथ एक एसएमएस भेजने के बाद:

client = Client(key1,key2)
message = client.api.account.messages.create(
    body= request.data["Body"],
    to= request.data["toNumber"],
    status_callback='https://myurl',
    from_= request.data["fromNumber"]
)

मैंने कॉल बैक सेट अप कर लिया है

class SMSCallBack(APIView):
    parser_classes = (JSONParser,)
    def post(self, request, format=None):  
        print(request.GET)
        print(request.GET.getlist('SmsSid'))
        return Response({'xxx': 'xxx'})

हालाँकि यह लॉग में मेरा जवाब है

<QueryDict: {}>
[]            

अगर मैं डाकिया में ऐसा करने की कोशिश करता हूं तो मुझे मिलता है

<QueryDict: {'SmsSid': ['asd']}>
['asd']

अब मैं डाकिया के साथ अनुमान लगा रहा हूं कि मैंने इसे सही तरीके से सेट किया है (पोस्ट करें, और पैरा टैब में एक मान जोड़ें) क्योंकि ट्विलियो से कंसोल लॉग यह इंगित कर रहा है कि वे जो कई पैरा भेज रहे हैं उनमें से एक एसएमएससिड है

Twilio debug console

मैं Django और अजगर के साथ काफी नया हूं, तो आने वाले पैरामीटर प्राप्त करने का प्रयास करते समय शायद कुछ ऐसा है जो मुझे याद आ रहा है?

जब मैं कोशिश करता हूँ

request.POST.getlist('SmsSid')

मेरा परिणाम है:

2019-07-15T05:15:25.735240+00:00 app[web.1]: 10.65.77.132 - - [15/Jul/2019:05:15:25 +0000] "POST /XXXX/smscallback/ HTTP/1.1" 415 100 "-" "TwilioProxy/1.1"
2019-07-15T05:15:25.738919+00:00 heroku[router]: at=info method=POST path="/XXXX/smscallback/" host=XXX.com request_id=3c5b81c2-003b-461a-8bd9-3e79d4545a9a fwd="3.94.8.12" dyno=web.1 connect=1ms service=783ms status=415 bytes=346 protocol=https

जब मैं डाकिया में कोशिश करता हूं तो मुझे मिलता है

[]

1
Manza 15 जुलाई 2019, 08:05

1 उत्तर

सबसे बढ़िया उत्तर

ट्विलियो डेवलपर इंजीलवादी यहाँ।

Twilio आपके स्टेटस कॉलबैक एंडपॉइंट पर एक POST अनुरोध करने जा रहा है। तो डेटा अनुरोध निकाय में होगा, request.POST के अंतर्गत request.GET के अंतर्गत नहीं।

आपका कोड यह भी दर्शाता है कि आप आने वाले अनुरोध को पार्स करने के लिए JSONParser का उपयोग कर रहे हैं। Twilio अनुरोध को application/x-www-form-urlencoded के रूप में भेजता है, इसलिए आपको इसके बजाय FormParser का उपयोग करना चाहिए।

मुझे बताएं कि क्या इससे बिल्कुल मदद मिलती है।

3
philnash 15 जुलाई 2019, 09:44