Making External Information Available Through Proxying-for
This next concept may seem a little confusing at first, but it’s quite valuable for the exchange of information between a wave and an external service. The Proxying-for approach enables robots to become gateways for users and information that is outside of a wave. In essence, this approach allows waves and robots to set a special field that identifies an external user (or other entity) that is represented by a robot.
Two core elements are implemented with this approach. The first is
the wave address of a proxied user, which is represented as
<robotid>+<userid>@appspot.com. This is
an abstract wave address that allows robots to proxy any number of users
(or entities). The second element is a proxyingFor flag that
is set whenever a proxied participant triggers an event and when a robot
performs an operation on behalf of a proxied user. This allows robots to
perform both wave and nonwave operations based on criteria associated with
a specific user that may not be a participant in a wave.
A good way to illustrate how this works is to use an example for how
a robot might exchange information between a wave and a user on a social
network. Let’s say the robot social-bot@appspot.com
is added to a wave. If a participant on the wave added
social-bot+janedoe@appspot.com to the wave, the robot
would be contacted (via the event), and the proxyingFor flag
would be set with janedoe. The robot would then go ahead and begin adding any new ...