1

在 FB Messenger webhook 快速入门页面的 python 中找不到任何内容。(https://developers.facebook.com/docs/messenger-platform/quickstart

4

3 回答 3

3

我继续自己移植。认为我应该分享财富。此片段以“给您!”回复每条消息:

import json
import requests
from django.views.decorators.csrf import csrf_exempt

FB_MESSENGER_ACCESS_TOKEN = "<Your Access Token>"


def respond_FB(sender_id, text):
    json_data = {
        "recipient": {"id": sender_id},
        "message": {"text": text + " to you!"}
    }
    params = {
        "access_token": FB_MESSENGER_ACCESS_TOKEN
    }
    r = requests.post('https://graph.facebook.com/v2.6/me/messages', json=json_data, params=params)
    print(r, r.status_code, r.text)

#this allows the requst to come in without requiring CSRF token
@csrf_exempt
def fb_webhook(request):
    if request.method == "GET":
        if (request.GET.get('hub.verify_token') == 'this_is_a_verify_token_created_by_sean'):
            return HttpResponse(request.GET.get('hub.challenge'))
        return HttpResponse('Error, wrong validation token')

    if request.method == "POST":
        body = request.body
        print("BODY", body)
        messaging_events = json.loads(body.decode("utf-8"))
        print("JSON BODY", body)
        sender_id = messaging_events["entry"][0]["messaging"][0]["sender"]["id"]
        message = messaging_events["entry"][0]["messaging"][0]["message"]["text"]
        respond_FB(sender_id, message)
        return HttpResponse('Received.')

这是 Gist 上的 FB Messenger Chatbot 端口

于 2016-04-15T15:00:45.580 回答
1

这是使用适用于我的fbmq 库的 python 示例:

回声示例:

from flask import Flask, request
from fbmq import Page

page = fbmq.Page(PAGE_ACCESS_TOKEN)

@app.route('/webhook', methods=['POST'])
def webhook():
  page.handle_webhook(request.get_data(as_text=True))
  return "ok"

@page.handle_message
def message_handler(event):
  page.send(event.sender_id, event.message_text)
于 2016-09-28T04:03:44.127 回答
1

我为 Facebook Messenger 平台编写了一个 Python 客户端:messengerbot

于 2016-04-17T16:03:40.243 回答