使用python Flas向facebook页面发送消息

2024-04-24 06:03:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用我的flask应用程序发送一条消息到facebook页面,但是我一直收到一个400错误的请求,请问我哪里做错了,或者有没有更好的方法来做到这一点。这是密码

import requests
import urllib
import json
import os

from flask import Flask
from flask import request
from flask import make_response

app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
  req = request.get_json(silent=True, force=True)
  print("Request:")
  print(json.dumps(req, indent=4))

  res = processRequest(req)
  print(res)

  url = 'https://graph.facebook.com/v2.6/me/messages'
  payload = res
  headers = {'content-type': 'application/json'}
  r = requests.post(url, data=json.dumps(payload), headers=headers)
  print(r)
  return r

def processRequest(req):
  request = req.get("originalRequest")
  first_data = request.get("data")
  sender = first_data.get("sender")
  user_id = sender.get("id")
  speech = "hello"

  print("Response:")
  print(speech)
  token ="my_access_token"

  return {
    "recipient": {
        "id": user_id
    },
    "message": speech,
    'access_token': token
}

if __name__ == "__main__":
  port = int(os.getenv('PORT', 5000))

  print("Starting app on port %d" % port)

  app.run(debug=False, port=port, host='0.0.0.0')

请帮忙,谢谢。提前谢谢


Tags: fromimporttokenidjsonappflaskdata
1条回答
网友
1楼 · 发布于 2024-04-24 06:03:28

您是否在请求中传递了有效的“访问令牌”?否则,服务器端将返回400错误请求错误。使用正确的“access\u token”值,请求如下所示:

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient": {
    "id": "USER_ID"
  },
  "message": {
    "text": "hello, world!"
  }
}' "https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN"

请阅读来自here的官方Facebook API参考以获取更多详细信息。你知道吗

相关问题 更多 >