2017-07-08 16 views
0

サードパーティサービスのMessagebirdからJSONがPOSTであるWebHookを構築しようとしています。その文書では、彼らは、発信クエリの例があります。JSONのWebhookへの構文解析

GET http://your-own.url/script 
    ?id=e8077d803532c0b5937c639b60216938 
    &recipient=31642500190 
    &originator=31612345678 
    &body=This+is+an+incoming+message 
    &createdDatetime=2016-05-03T14:26:57+00:00 

私のウェブフックはジャンゴではPythonで構築されているが、これは私が私のviews.pyに持っているものです。

from django.shortcuts import render 
from django.views.decorators.http import require_POST 
from django.http import HttpResponse 
from .models import UserText 

@require_POST 
def webhookmb(request): 
    usrtxt = json.loads(request.body.decode("utf-8")) 

    UserText.objects.create(
     id = usrtxt['id'] 
     recipient = usrtxt['recipient'] 
     originator = usrtxt['originator'] 
     body = usrtxt['body'] 
     createdDatetime = usrtxt['createdDatetime'] 
    ) 

    return HttpResponse(200) 

私の目標JSONをファイルusrtxtに読み込み、それらのフィールドをモデルにマップすることです。私は(Herokuの上に配備)、このエラーを取得しています:json.loadsGETと始まりのようなファイルと最初の読み込みしようとしているので、

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

は、このですか?この行をスキップする必要がありますか?それとも別の方法がありますか?

答えて

0

これは簡単すぎるかもしれませんが、ウェブフックに@csrf_exemptデコレータを追加してみてください。