Error at webhook: 400 {"errors":[{"code":214,"message":"Webhook URL does not meet the requirements. Invalid CRC token or json response format."}]}の対処
事象
twitrer Account Activity APIの技術調査にて以下のエラーが発生。
Error at webhook: 400 {"errors":[{"code":214,"message":"Webhook URL does not meet the requirements. Invalid CRC token or json response format."}]}
原因
Django側のwebhookでCRCのテストに合格できていない。
対応方法
from django.views.decorators.csrf import csrf_exempt from django.shortcuts import render from django.http import HttpResponse import base64 import hashlib import hmac import json # Create your views here. def test_view(request): """テストページ""" return HttpResponse('テストページ') @csrf_exempt def webhook(request): """webhook""" key = ':API secret key'.encode() msg = request.GET.get('crc_token') msg_bytes = msg.encode() hash = hmac.new(key, msg=msg_bytes, digestmod=hashlib.sha256).digest() twitter_response = {'response_token': 'sha256=' + base64.b64encode(hash).decode()} return HttpResponse(json.dumps(twitter_response), content_type='application/json')