Facebook Messengerbot 是一个基于 Facebook Messenger 平台开发的聊天机器人。它允许用户通过 Facebook Messenger 与你的应用进行交互。为了确保安全性,Facebook 要求开发者提供一个回调 URL 和一个验证令牌(verification token),用于验证请求的合法性。
原因:
解决方法:
以下是一个简单的 Flask 应用示例,用于处理 Facebook Messenger 的验证请求:
from flask import Flask, request, jsonify
app = Flask(__name__)
VERIFY_TOKEN = "your_verification_token"
@app.route('/', methods=['GET'])
def verify():
# Facebook 验证请求
token_sent = request.args.get("hub.verify_token")
return verify_fb_token(token_sent)
def verify_fb_token(token_sent):
if token_sent == VERIFY_TOKEN:
return request.args.get("hub.challenge")
else:
return 'Invalid verification token'
@app.route('/', methods=['POST'])
def webhook():
# 处理来自 Facebook 的消息
output = request.get_json()
for event in output['entry']:
messaging = event['messaging']
for message in messaging:
if message.get('message'):
# 处理接收到的消息
recipient_id = message['sender']['id']
if message['message'].get('text'):
response_sent_text = "Echo: " + message['message']['text']
send_message(recipient_id, response_sent_text)
return "Message Processed"
def send_message(recipient_id, text):
payload = {
'recipient': {'id': recipient_id},
'message': {'text': text}
}
url = 'https://graph.facebook.com/v12.0/me/messages'
params = {
'access_token': 'your_access_token'
}
response = requests.post(url, params=params, json=payload)
return response.json()
if __name__ == '__main__':
app.run(port=5000, debug=True)
通过以上步骤和示例代码,你应该能够解决“无法验证回调URL或验证令牌”的问题。如果问题仍然存在,请检查 Facebook 开发者控制台中的配置,并确保所有信息正确无误。
领取专属 10元无门槛券
手把手带您无忧上云