0
私はthis tutorialに続いて、あなたが入力したものだけをエコーするFacebook Messengerボットを実装しました。それはFacebookと大丈夫ですが、私はそれを超えて働かせることはできませんし、私は問題を見つけることができません。手伝ってくれませんか?これはこれまでのコードです(チュートリアルのコードと比べて少し変更が加えられています)。Facebookのメッセンジャーボットはメッセージを送信しません(Python/Django)
class BotsView(generic.View):
def get(self, request, *args, **kwargs):
if self.request.GET.get('hub.verify_token') == '1111111111':
return HttpResponse(self.request.GET.get('hub.challenge'))
else:
return HttpResponse('Error, invalid token')
def post_facebook_message(fbid, recevied_message):
post_message_url = 'https://graph.facebook.com/v2.6/me/messages?access_token=<access-token>'
response_msg = json.dumps({"recipient":{"id":fbid}, "message":{"text":recevied_message}})
requests.post(post_message_url, headers={"Content-Type": "application/json"},data=response_msg)
return HttpResponse()
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return generic.View.dispatch(self, request, *args, **kwargs)
def post(self, request, *args, **kwargs):
# Converts the text payload into a python dictionary
incoming_message = json.loads(self.request.body)
# Facebook recommends going through every entry since they might send
# multiple messages in a single call during high load
for entry in incoming_message['entry']:
for message in entry['messaging']:
# Check to make sure the received call is a message call
# This might be delivery, optin, postback for other events
if message.has_key('message'):
# Print the message to the terminal
# pprint(message)
# Assuming the sender only sends text. Non-text messages like stickers, audio, pictures
# are sent as attachments and must be handled accordingly.
post_facebook_message(message['sender']['id'], message['message']['text'])
return HttpResponse()