views:

83

answers:

1

I am trying to use the Google Wave Active Robot API fetch_wavelet() and I get an HTTP 502 error

example:

    from waveapi import robot
    import passwords

    robot = robot.Robot('gae-run', 'http://images.com/fake-image.jpg')
    robot.setup_oauth(passwords.CONSUMER_KEY, passwords.CONSUMER_SECRET, server_rpc_base='http://www-opensocial.googleusercontent.com/api/rpc')
    wavelet = robot.fetch_wavelet('googlewave.com!w+dtuZi6t3C','googlewave.com!conv+root')
    robot.submit(wavelet)
    self.response.out.write(wavelet.creator)

But the error I get is this:

Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 511, in __call__
    handler.get(*groups)
  File "/base/data/home/apps/clstff/gae-run.342467577023864664/main.py", line 23, in get
    robot.submit(wavelet)
  File "/base/data/home/apps/clstff/gae-run.342467577023864664/waveapi/robot.py", line 486, in submit
    res = self.make_rpc(pending)
  File "/base/data/home/apps/clstff/gae-run.342467577023864664/waveapi/robot.py", line 251, in make_rpc
    raise IOError('HttpError ' + str(code))
IOError: HttpError 502

Any ideas?


Edit:

When [email protected] is not a member of the wave I get the correct error message

Error: RPC Error500: internalError: [email protected] is not a participant of wave id: [WaveId:googlewave.com!w+Pq1HgvssD] wavelet id: [WaveletId:googlewave.com!conv+root]. Unable to apply operation: {'method':'robot.fetchWave','id':'655720','waveId':'googlewave.com!w+Pq1HgvssD','waveletId':'googlewave.com!conv+root','blipId':'null','parameters':{}}

But when [email protected] is a member of the wave I get the http 502 error.

IOError: HttpError 502
A: 

Joe Gregorio answered my question on the Google Wave API Google group

Did you make any changes to the wavelet before submitting it? I think there was an old bug where sending in an empty change would cause a 502, this might be a regression in that behavior.

If I removed the robot.submit(wavelet) line, it worked!

Drew LeSueur