Пользователь
import json import base64 import urllib.request def handler(event, context): img = urllib.request.urlopen("https://habr.com/images/habr.png").read() parsed_string = json.loads(event["body"]) chat_id = parsed_string['message']['chat']['id'] boundary = 'Asrf456BGe4h' parts = [] parts.append('--' + boundary) parts.append('Content-Disposition: form-data; name="method"') parts.append('') parts.append('sendPhoto') parts.append('--' + boundary) parts.append('Content-Disposition: form-data; name="chat_id"') parts.append('') parts.append(str(chat_id)) parts.append('--' + boundary) parts.append('Content-Disposition: form-data; name="photo"; filename="%s"' % 'img.jpg') parts.append('Content-Type: image/jpeg') parts.append('') parts.append(base64.b64encode(img).decode()) parts.append('--' + boundary + '--') parts.append('') body = '\r\n'.join(parts) return { 'statusCode': 200, 'headers': { 'content-type': 'multipart/form-data; boundary=' + boundary }, 'body': body, 'isBased64Encoded': 'true' }
HTTP/1.1 200 OK Server: nginx Date: Sun, 06 Oct 2019 14:26:32 GMT Content-Type: multipart/form-data; boundary=Asrf456BGe4h Transfer-Encoding: chunked Connection: keep-alive X-Content-Type-Options: nosniff X-Function-Id: ... X-Function-Version-Id: ... X-Request-Id: ... Strict-Transport-Security: max-age=31536000; includeSubdomains; preload X-Frame-Options: SAMEORIGIN --Asrf456BGe4h Content-Disposition: form-data; name="method" sendPhoto --Asrf456BGe4h Content-Disposition: form-data; name="chat_id" 1111111 --Asrf456BGe4h Content-Disposition: form-data; name="photo"; filename="img.jpg" Content-Type: image/jpeg iVBORw0KGgoAAAANSUhEUgAABLAAAAJ2CAYAAABPQHtcAAAABGdBTUEAALGPC/ .../A0wmf2FFW4KcAAAAAElFTkSuQmCC --Asrf456BGe4h--
import json import base64 import urllib.request def handler(event, context): img = urllib.request.urlopen("https://habr.com/images/habr.png").read() parsed_string = json.loads(event["body"]) chat_id = parsed_string['message']['chat']['id'] answerM = { "method": "sendMessage", "chat_id": chat_id, "text": "привет" } answerP = { "method": "sendPhoto", "chat_id": chat_id #"photo": base64.b64encode(img).decode() } return { 'statusCode': 200, 'headers': {"Content-Type": "multipart/form-data"}, 'body': json.dumps(answerP), 'isBased64Encoded': 'true', 'files': {'photo': base64.b64encode(img).decode()} }
Когда снег уже на урале выпадет?
И добился формирования следующего ответа, но не понимаю, что из этого не нравится телеграму:
Когда снег уже на урале выпадет?
на дворе был 2016 год