Facebook Bot Messenger。蟒蛇

时间:2016-09-09 13:10:26

标签: facebook python-2.7 google-app-engine bots facebook-messenger

我在GAE上开发FB bot,我的机器人的一个功能就是发送图像。我想附加我的图像并将其发送给用户(而不是通过链接)。

问题是我收到错误:必须指定收件人,但实际上我已经指定了它:

from requests_toolbelt import MultipartEncoder
from google.appengine.api import urlfetch

def send_image(recipient_id):
payload = {
    'recipient': json.dumps(
        {
            'id': recipient_id
        }
    ),
    'message': json.dumps(
        {
            'attachment': {
                'type': 'image',
                'payload': {}
            }
        }
    ),
    'filedata': (path, open(path, 'rb'))
}
multipart_data = MultipartEncoder(payload)
multipart_header = {
    u'Content-Type': multipart_data.content_type
}

result = urlfetch.fetch(
    url=request_endpoint,
    payload=multipart_data,
    method=urlfetch.POST,

    headers=multipart_header,
    deadline=10)

return result.content

result.response:

'{"error":{"message":"(#100) The parameter recipient is required","type":"OAuthException","code":100,"fbtrace_id":"CIGds8u22au"}}'

1 个答案:

答案 0 :(得分:0)

要发送图像,可以使用附件上传Api。 这个过程很简单。 您通过提供图像链接将图像作为附件上传,并获取附件ID。然后使用该附件ID向用户发送附件。 参考:Attachment Upload Api