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 clstff@appspot.com
is not a member of the wave I get the correct error message
Error: RPC Error500: internalError: clstff@appspot.com 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 clstff@appsot.com
is a member of the wave I get the http 502 error.
IOError: HttpError 502
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!