how about something like this:

To send:
applications/init/controllers/default.py:

def send():
    from google.appengine.api import xmpp
    user_address = 'y...@gmail.com'
    xmpp.send_invite(user_address)
    msg = "Someone has sent you a gift on Example.com. To view:
http://example.com/gifts/";
    status_code = xmpp.send_message(user_address, msg)
    return dict(status_code=status_code)


To receive:
applications/_ah/controllers/xmpp.py:

def message():
    if request.args[0] == 'chat' and request.method == 'POST':
        import logging
        message =  request.vars
        logging.debug(str(message))
        return message


Add this to app.yaml:

inbound_services:
- xmpp_message

Check your logs to see incoming XMPP messages, only works on GAE
production servers.

Robin


On Sep 26, 5:47 pm, murray3 <ch...@murraypost.net> wrote:
> Any chance of a basic skeleton app for this to get us started?
> chrism
>
> On Sep 24, 5:44 am, Robin B <robi...@gmail.com> wrote:
>
> > If you port it to web2py, then you don't need to wrap their handler,
> > unless I am misunderstanding.
>
> > All that has to built a web2py controller function that can receive
> > POST requests at:
>
> > /_ah/xmpp/message/chat/
>
> > The POST data is this:
> >     *  from, the address of the sender of the message
> >     * to, the address of the recipient as described by the sender (see
> > below)
> >     * body, the body of the message
> >     * stanza, the full XMPP message in its original XML form
>
> > The IMProperty does not need to used, and it can just be a string.
>
> > Once XMPP is enabled, Google will POST messages to web2py at /_ah/xmpp/
> > message/chat/.
>
> > Google's xmpp_handlers.CommandHandler is not needed for web2py, but
> > some of the XML parser could be reused.
>
> > Robin
>
> > On Sep 23, 4:11 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > I agree. Most of what the rest of the code does should be easy to port
> > > to web2py. But I need to understand how to wrap the handler so that I
> > > can be called from a controller function. We could make a wsgi_adaptor
> > > inside the controller but there has to be a better way.
>
> > > On Sep 23, 3:57 pm, Robin B <robi...@gmail.com> wrote:
>
> > > > Yes,
>
> > > > I believe the url  ('/_ah/xmpp/message/chat/') is significant
>
> > > > what about:
>
> > > > app='_ah'
> > > > controller='xmpp'
> > > > action='message'
>
> > > > then handle the rest as args and call other controller functions?
>
> > > > Robin
>
> > > > On Sep 23, 2:57 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > Then it should be possible to rewrite the entire example as a web2py
> > > > > application. Is there specific significance it the URL names ('/_ah/
> > > > > xmpp/message/chat/') used in the example? Because preserving those
> > > > > would require roots.
>
> > > > > Massimo
>
> > > > > On Sep 23, 2:25 pm, Robin B <robi...@gmail.com> wrote:
>
> > > > > > looks like a string property that validates as an instant messaging
> > > > > > handle.
>
> > > > > >http://ru.ly/Nb
>
> > > > > > class IM(object):
> > > > > >   """An instant messaging handle. Includes both an address and its
> > > > > > protocol.
> > > > > >   The protocol value is either a standard IM scheme or a URL
> > > > > > identifying the
> > > > > >   IM network for the protocol. Possible values include:
>
> > > > > >     Value                           Description
> > > > > >     sip                             SIP/SIMPLE
> > > > > >     unknown                         Unknown or unspecified
> > > > > >     xmpp                            XMPP/Jabber
> > > > > >    http://aim.com/               AIM
> > > > > >    http://icq.com/               ICQ
> > > > > >    http://talk.google.com/       Google Talk
> > > > > >    http://messenger.msn.com/     MSN Messenger
> > > > > >    http://messenger.yahoo.com/   Yahoo Messenger
> > > > > >    http://sametime.com/          Lotus Sametime
> > > > > >    http://gadu-gadu.pl/          Gadu-Gadu
>
> > > > > >   This is the gd:im element. In XML output, the address and protocol
> > > > > > are
> > > > > >   provided as the address and protocol attributes, respectively. 
> > > > > > See:
> > > > > >  http://code.google.com/apis/gdata/common-elements.html#gdIm
>
> > > > > >   Serializes to '<protocol> <address>'. Raises BadValueError if tag 
> > > > > > is
> > > > > > not a
> > > > > >   standard IM scheme or a URL.
> > > > > >   """
>
> > > > > > Robin
>
> > > > > > On Sep 23, 8:01 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > > What's a IM field?
>
> > > > > > > On Sep 22, 10:13 pm, Robin B <robi...@gmail.com> wrote:
>
> > > > > > > > You can edit app.yaml to dispatch requests to those xmpp 
> > > > > > > > handlers
> > > > > > > > based on prefix (/_ah/*), and let web2py handle everything 
> > > > > > > > that's left
> > > > > > > > (/*)
>
> > > > > > > > Or you can rewrite those handlers as web2py 
> > > > > > > > controller/functions and
> > > > > > > > use routes.py to map the specific urls to 
> > > > > > > > app/controller/function
>
> > > > > > > > Robin
>
> > > > > > > > On Sep 22, 5:44 pm, murray3 <ch...@murraypost.net> wrote:
>
> > > > > > > > > I am interested in the way we can convert GAE sample web apps 
> > > > > > > > > to
> > > > > > > > > web2py, in particular the xmpp tutorial 
> > > > > > > > > :http://code.google.com/appengine/articles/using_xmpp.html
>
> > > > > > > > > Seems straight forward to import the modules etc.
>
> > > > > > > > > How should the following be ported to web2py to handle the 
> > > > > > > > > xmpp stuff?
> > > > > > > > > def main():
> > > > > > > > >   app = webapp.WSGIApplication([
> > > > > > > > >       ('/', LatestHandler),
> > > > > > > > >       ('/_ah/xmpp/message/chat/', XmppHandler),
> > > > > > > > >       ], debug=True)
> > > > > > > > >   wsgiref.handlers.CGIHandler().run(app)
>
> > > > > > > > > the tutorial states the following:
>
> > > > > > > > > " There's one last thing we need to do to get this all 
> > > > > > > > > working, of
> > > > > > > > > course - hook it up to the serving infrastructure so it can 
> > > > > > > > > serve
> > > > > > > > > requests. Fortunately, a CommandHandler is a standard webapp
> > > > > > > > > RequestHandler subclass, so we can set it up as we would any 
> > > > > > > > > other
> > > > > > > > > handler. Modify the lines where the application variable is 
> > > > > > > > > defined to
> > > > > > > > > read like this:
>
> > > > > > > > > application = webapp.WSGIApplication([
> > > > > > > > >     ('/_ah/xmpp/message/chat/', XmppHandler)], debug=True)
>
> > > > > > > > > The URL path here - /_ah/xmpp/message/chat - is a 'reserved' 
> > > > > > > > > one that
> > > > > > > > > all XMPP messages get sent to. "
>
> > > > > > > > > any pointers to get me started.
> > > > > > > > > regards
> > > > > > > > > chrism
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to