After quite a bit of hacking, I've gotten the Active API sort of working.
I see the following exception in wave in a box's log:
Nov 1, 2010 10:03:38 PM
org.waveprotocol.box.server.robots.active.ActiveApiServlet doPost
INFO: Participant id invalid
org.waveprotocol.wave.model.wave.InvalidParticipantAddress: Invalid address
'google.com:<consumer tolken secrete>': Missing domain prefix: @
at
org.waveprotocol.wave.model.wave.ParticipantId.validate(ParticipantId.java:71)
at
org.waveprotocol.wave.model.wave.ParticipantId.of(ParticipantId.java:128)
at
org.waveprotocol.box.server.robots.active.ActiveApiServlet.doPost(ActiveApiServlet.java:112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
at org.eclipse.jetty.server.Server.handle(Server.java:347)
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594)
at
org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1059)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:764)
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217)
at
org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
at java.lang.Thread.run(Thread.java:662)
2010-11-01 22:03:38.096:DBUG::RESPONSE /robot/rpc 401
On Mon, Nov 1, 2010 at 6:41 PM, Soren Lassen <[email protected]> wrote:
> If you add a robot @appspot.com or @googlewaverobots.com to a wavelet
> hosted by your wave server it won't reach the robots by federation,
> because Google doesn't have wave federation XMPP endpoints set up for
> these domains.
>
> FWIW, if a wavelet is hosted by wavesandbox.com and the wavelet has a
> robot participant, the robot should act on any operations that reach
> the wavelet by federation.
>
> Soren
>
> On Tue, Nov 2, 2010 at 10:34 AM, Lennard de Rijk <[email protected]>
> wrote:
> >
> >
> > On Mon, Nov 1, 2010 at 4:31 PM, Matt Richards <[email protected]>
> wrote:
> >>
> >> Getting closer to making the bot work (for anybody that is interested
> I'm
> >> working with jsonbot, which was mentioned by its Author at one of the
> office
> >> hours). I've managed to get it to use the Passive APIs, but I'm not
> seeing
> >> any triggers in my logs for the Active API as of yet.. On a side note,
> while
> >> testing robots, is it correct they do not currently federate?
> >
> > They should federate afaict. I personally never tested it though.
> > Greetings,
> > Lennard
> >
> >>
> >> On Sun, Oct 31, 2010 at 6:52 PM, Lennard de Rijk <[email protected]>
> >> wrote:
> >>>
> >>>
> >>> On Sun, Oct 31, 2010 at 4:12 PM, Matt Richards <[email protected]>
> >>> wrote:
> >>>>
> >>>> Coolness! Last question (for now) is the Data API authentication
> "dance"
> >>>> fully implemented at this stage in the development?
> >>>> I noticed when I registered the URL, waveinabox did provide me
> >>>> with credentials. Am I able to take an existing robot and bring it
> over?
> >>>
> >>> Yes the oauth token and secret are in use for the active api and the
> >>> 3-legged dance for the data api is implemented as well. Let me know how
> it
> >>> goes, you might run into small problems when using the active api with
> >>> setting the new server and such.
> >>> Greetings,
> >>> Lennard
> >>>
> >>>>
> >>>> On Sun, Oct 31, 2010 at 6:05 PM, Lennard de Rijk <
> [email protected]>
> >>>> wrote:
> >>>>>
> >>>>>
> >>>>> On Sun, Oct 31, 2010 at 11:15 AM, Matt Richards <[email protected]
> >
> >>>>> wrote:
> >>>>>>
> >>>>>> Thanks, I applied [0] and registered [1] as a robot within my server
> >>>>>> using the memory based account storage. Echoey works using GAE, the
> next
> >>>>>> step I'd like to take is using Jetty on my own server hardware. Does
> the
> >>>>>> registration function the same way for self hosted robots? Simply
> changing
> >>>>>> the URL my Jetty installation?
> >>>>>
> >>>>> Yes, the Robot API makes no assumption on what domain you are
> running.
> >>>>> Greetings,
> >>>>> Lennard
> >>>>>
> >>>>>>
> >>>>>> On Sun, Oct 31, 2010 at 12:41 PM, Lennard de Rijk
> >>>>>> <[email protected]> wrote:
> >>>>>>>
> >>>>>>> Hi Matt,
> >>>>>>>
> >>>>>>> On Sun, Oct 31, 2010 at 10:10 AM, Matt Richards <
> [email protected]>
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>> I'd like to start testing the Robot API in Wave in a Box if its
> >>>>>>>> possible. Are the operations far enough along where the robot is
> able to
> >>>>>>>> accomplish anything user visible?
> >>>>>>>
> >>>>>>> If you apply [0] Echoey will work. I hope to get this code tested
> and
> >>>>>>> submitted in the upcoming week. Robots can already reply and make
> new blips
> >>>>>>> using [2].
> >>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> I saw there was an echoey robot example submitted a while back,
> how
> >>>>>>>> can I get this setup to test with? Do I need to use GAE? I'm not
> very clear
> >>>>>>>> on how self hosted robots can be setup.
> >>>>>>>
> >>>>>>> You don't have to run in on appengine, you can run it on anything
> >>>>>>> that can host a Java Servlet (Apache, Jetty, etc). In fact this
> version is
> >>>>>>> not really suited for appengine thanks to the cached dictionary
> that is
> >>>>>>> being used, if you replace that with a normal hashmap you build up
> every
> >>>>>>> request then you can push it to appengine, such a version is
> actually
> >>>>>>> running on [1].
> >>>>>>> To use the appengine version you should go to:
> >>>>>>> http://yourserver+port/robot/register/create
> >>>>>>> fill in a username for your robot and point it to [1]. Now when you
> >>>>>>> add that username to a wave the robot will be called. Make sure
> that you are
> >>>>>>> running the memory or mongodb accountstore otherwise registration
> will not
> >>>>>>> work. And don't forget to patch in [0].
> >>>>>>> Hope this helps,
> >>>>>>> Lennard
> >>>>>>> [0] http://codereview.waveprotocol.org/221001/show
> >>>>>>> [1] http://echoey-wave.appspot.com/
> >>>>>>>
> >>>>>>> [2]
> http://code.google.com/p/wave-protocol/source/browse/src/org/waveprotocol/box/server/robots/operations/BlipOperationServices.java
> >>>>>>>
> >>>>>>> --
> >>>>>>> You received this message because you are subscribed to the Google
> >>>>>>> Groups "Wave Protocol" group.
> >>>>>>> To post to this group, send email to
> [email protected].
> >>>>>>> To unsubscribe from this group, send email to
> >>>>>>> [email protected]<wave-protocol%[email protected]>
> .
> >>>>>>> For more options, visit this group at
> >>>>>>> http://groups.google.com/group/wave-protocol?hl=en.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> --Matt
> >>>>>>
> >>>>>> --
> >>>>>> You received this message because you are subscribed to the Google
> >>>>>> Groups "Wave Protocol" group.
> >>>>>> To post to this group, send email to [email protected]
> .
> >>>>>> To unsubscribe from this group, send email to
> >>>>>> [email protected]<wave-protocol%[email protected]>
> .
> >>>>>> For more options, visit this group at
> >>>>>> http://groups.google.com/group/wave-protocol?hl=en.
> >>>>>
> >>>>> --
> >>>>> You received this message because you are subscribed to the Google
> >>>>> Groups "Wave Protocol" group.
> >>>>> To post to this group, send email to [email protected].
> >>>>> To unsubscribe from this group, send email to
> >>>>> [email protected]<wave-protocol%[email protected]>
> .
> >>>>> For more options, visit this group at
> >>>>> http://groups.google.com/group/wave-protocol?hl=en.
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> --Matt
> >>>>
> >>>> --
> >>>> You received this message because you are subscribed to the Google
> >>>> Groups "Wave Protocol" group.
> >>>> To post to this group, send email to [email protected].
> >>>> To unsubscribe from this group, send email to
> >>>> [email protected]<wave-protocol%[email protected]>
> .
> >>>> For more options, visit this group at
> >>>> http://groups.google.com/group/wave-protocol?hl=en.
> >>>
> >>> --
> >>> You received this message because you are subscribed to the Google
> Groups
> >>> "Wave Protocol" group.
> >>> To post to this group, send email to [email protected].
> >>> To unsubscribe from this group, send email to
> >>> [email protected]<wave-protocol%[email protected]>
> .
> >>> For more options, visit this group at
> >>> http://groups.google.com/group/wave-protocol?hl=en.
> >>
> >>
> >>
> >> --
> >> --Matt
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "Wave Protocol" group.
> >> To post to this group, send email to [email protected].
> >> To unsubscribe from this group, send email to
> >> [email protected]<wave-protocol%[email protected]>
> .
> >> For more options, visit this group at
> >> http://groups.google.com/group/wave-protocol?hl=en.
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Wave Protocol" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<wave-protocol%[email protected]>
> .
> > For more options, visit this group at
> > http://groups.google.com/group/wave-protocol?hl=en.
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Wave Protocol" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<wave-protocol%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/wave-protocol?hl=en.
>
>
--
--Matt
--
You received this message because you are subscribed to the Google Groups "Wave
Protocol" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/wave-protocol?hl=en.