Another way to pipe information into the robot would be using REST
calls, since the robot is actually sitting at an HTTP endpoint on the
appspot servers.  This would be significantly easier than opening up a
TCP Socket.  Alternately, you could set up another servlet on the
appspot server that put instructions into the appspot datastore, and
had the Robot respond to them (potentially using polling with your
"wait") solution.

I don't believe that a robot in this context would have access to any
waves though, since it wouldn't have a "context" to execute against.

Adam Ness

On Tue, Nov 17, 2009 at 10:51 AM, Olreich <olre...@gmail.com> wrote:
> The API calls that we listed are indeed for creating new waves, not
> wavelets, as this does not allow for those inline "private reply" type
> wavelets that users can create (which there is still no functionality
> in the API to do). Robot's are indeed meant to respond to events, and
> have no ability to create unique handlers or randomly push data down
> to the servers without a time-based loop that runs continuously and
> adds tons of CPU time to the robot, which may be thwarted with the
> "wait(ms)" function available to Java Robots at least.
>
> As for the idea that one can push data from an external data source to
> a robot, this may be able to function with Sockets, with a robot being
> one end of the socket, and your external service being the other. To
> make it create waves and such, you may be able to merely add the
> Google Wave Robot API to the project and somehow get your hands on a
> wavelet, such as with the wasSelfAdded()[java] event. That would also
> be the time to spawn an open server connection. Then, if the external
> program has something to tell the Robot, it sends it over that
> connection. Setting up the connection might be tricky, as I would
> guess robot instances are not the easiest to find (so you'd probably
> connect to the static site, save the robot address and then create the
> reverse relationship). And, this all depends on how much freedom
> Google AppEngine and Google Wave has given for networking.
>
> Pushing requests to Wave is dangerous, as there would be no
> authentication. I can see Google having this be fleshed out once they
> allow all Robots to participate, rather than just AppSpot Robots, but
> for now, it's not safe, so they probably won't allow it until they
> figure out how to make it safe. After all, Robot's have quite a bit of
> power to annoy everyone, so long as they are initialized by a single
> user adding them to any Wave. They can also ruin waves, lock waves,
> and do all sorts of annoying things when put into a Wave that they
> shouldn't be.
>
> On Nov 17, 8:55 am, jhouk <jsh...@gmail.com> wrote:
>> Thanks Olrech and Pamela!
>>
>> Please forgive me if I'm being dense here, but it looks like the APIs
>> you're listing are designed for creating wavelets within an existing
>> wave, or spawning a new wave from an existing wave.  The issue being
>> that robots are--and please correct me if I'm wrong--designed to
>> listen in on an existing wave and react to activity within the wave.
>> What we're looking to do, on the other hand, is run services external
>> to Wave, and based on external events, communicate to Google Wave that
>> a new top level wave (not wavelet) needs to be created with a set of
>> participants.
>>
>> Now, as I type this I'm thinking that I might be able to use the
>> current APIs in an unorthodox way to get this functionality.  Perhaps
>> I can manually create a starter wave with myself and a monitor robot
>> as participants to bootstrap the robot.  Once it's running, the bot
>> can 'pull' any new wave notifications from our external service and
>> spawn new waves with the appropriate participants.
>>
>> Still, it seems like some kind of Google Wave listening service that
>> would allow us to 'push' requests to Wave would be a more
>> straightforward and efficient mechanism, but this should be enough to
>> get us started.
>>
>> Thanks again!
>> --Justin
>>
>> On Nov 17, 5:24 am, "pamela (Google Employee)" <pamela...@gmail.com>
>> wrote:
>>
>>
>>
>> > In addition, I published some sample code here for Python wave 
>> > creation:http://wave-samples-gallery.appspot.com/about_app?app_id=60017
>>
>> > <http://wave-samples-gallery.appspot.com/about_app?app_id=60017>- pamela
>>
>> > On Mon, Nov 16, 2009 at 1:48 PM, Olreich <olre...@gmail.com> wrote:
>> > > To create a wave via programming in Java:
>>
>> > > wavelet.createWavelet(participants, dataDocument);
>>
>> > > wavelet -> A Wavelet object.
>> > > participants -> A List<String> of the participants that you want to
>> > > include (format of name: usern...@googlewave.com)
>> > > dataDocument -> A String referring to a named dataDocument where the
>> > > waveId that is created will reside (for callback utility). (I may be
>> > > wrong on this one, as I've not used it)
>>
>> > > Check the Java Docs for more information.
>>
>> > >http://wave-robot-java-client.googlecode.com/svn/trunk/doc/com/google...
>> > > ,
>> > > java.lang.String)
>>
>> > > To create a wave via programming in Python:
>>
>> > > robot_abstract.NewWave(context, participants)
>>
>> > > robot_abstract -> An instance of the robot_abstract class
>> > > context -> An instance of the context class
>> > > participants -> A list of participants
>>
>> > > I'm not very good with python, so that's not very informative I don't
>> > > think, but that's the function.
>>
>> > >http://wave-robot-python-client.googlecode.com/svn/trunk/pydocs/wavea...
>>
>> > > On Nov 15, 10:30 pm, jhouk <jsh...@gmail.com> wrote:
>> > > > Hi all,
>>
>> > > > We have this exact same question.  We'd like to use Wave as the chat
>> > > > mechanism in a tool that we're building, but for it to work, we'll
>> > > > need the ability to programmatically create a new wave, add
>> > > > participants to it, and fetch its wave ID so that we can embed it in
>> > > > our tool.  Any chance of that kind of functionality coming down the
>> > > > pipe?
>>
>> > > > In short, *bump*
>>
>> > > > Thanks!
>> > > > --Justin
>>
>> > > > On Nov 12, 9:14 am, drone <andr...@gmail.com> wrote:
>>
>> > > > > Hello,
>> > > > > I see, currently Embed API exposes Google Wave client's Wave panel
>> > > > > functionality.
>>
>> > > > > So I'm wondering, are there any plans to expose more functionality,
>> > > > > which would allow to embed Wave List (Search) panel, create newWaves
>> > > > > programmatically, etc?
>>
>> > > --
>>
>> > > You received this message because you are subscribed to the Google Groups
>> > > "Google Wave API" group.
>> > > To post to this group, send email to google-wave-...@googlegroups.com.
>> > > To unsubscribe from this group, send email to
>> > > google-wave-api+unsubscr...@googlegroups.com<google-wave-api%2Bunsubscribe@
>> > >  googlegroups.com>
>> > > .
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/google-wave-api?hl=.
>
> --
>
> You received this message because you are subscribed to the Google Groups 
> "Google Wave API" group.
> To post to this group, send email to google-wave-...@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-wave-api+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-wave-api?hl=.
>
>
>

--

You received this message because you are subscribed to the Google Groups 
"Google Wave API" group.
To post to this group, send email to google-wave-...@googlegroups.com.
To unsubscribe from this group, send email to 
google-wave-api+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-wave-api?hl=.


Reply via email to