HTTP Error 400: Bad Request; google app engine + telegram api

7 views
Skip to first unread message

Lucy via StackOverflow

unread,
Jul 18, 2016, 3:49:04 AM7/18/16
to google-appengin...@googlegroups.com

So i'm working on a telegram bot for a multi-player board game. Web hook is set. And there appears to be a http 400 error when the bot tries to privately message each user in the group chat. What happened to the bot is that it got stuck and keeps messaging one player.

my code:

BASE_URL = 'https://api.telegram.org/bot' + TOKEN + '/'
class WebhookHandler(webapp2.RequestHandler):
    def post(self):
        urlfetch.set_default_fetch_deadline(60)
        body = json.loads(self.request.body)
        logging.info('request body:')
        logging.info(body)
        self.response.write(json.dumps(body))

        update_id = body['update_id']
        try:
            message = body['message']
        except:
            message = body['edited_message']
        message_id = message.get('message_id')
        date = message.get('date')
        text = message.get('text')
        fr = message.get('from')
        chat = message['chat']
        chat_id = chat['id']
        chat_type = chat['type']
        fr_user_id = fr['id']
        fr_user_name = fr['first_name']

        if not text:
            logging.info('no text')
            return    

        def reply_to_user(desti_user_id, msg):
            if msg:
                resp = urllib2.urlopen(BASE_URL + 'sendMessage', urllib.urlencode({
                    'chat_id': str(desti_user_id),
    **#line 115!**  'text': msg.encode('utf-8')
                })).read()

            else:
                logging.error('no msg or img specified')
                resp = None

            logging.info('send response:')
            logging.info (resp)

The LOG(google app engine):

HTTP Error 400: Bad Request (/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py:1552)
Traceback (most recent call last):
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1535, in __call__
    rv = self.handle_exception(request, response, e)
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1529, in __call__
    rv = self.router.dispatch(request, response)
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1102, in __call__
    return handler.dispatch()
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 572, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 570, in dispatch
    return method(*args, **kwargs)
  File "/base/data/home/apps/s~orbitaltest2/1.394273849972192493/main.py", line 241, in post
    reply_to_user(player.user_id, "you are: a member of the resistance")
  File "/base/data/home/apps/s~orbitaltest2/1.394273849972192493/main.py", line 115, in reply_to_user
    'text': msg.encode('utf-8'),
  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 410, in open
    response = meth(req, response)
  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 400: Bad Request

not sure what happened.



Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/38425713/http-error-400-bad-request-google-app-engine-telegram-api
Reply all
Reply to author
Forward
0 new messages