GAE - XMPP Robot

GAE支持XMPP消息的发送和接收,用来实现XMPP Robot是再方便不过了。

 

1. 下载google appengine安装。

2. 新建一个应用,偷懒,就用官方的代码。到源文件目录下,找到app.yaml,修改为如下以支持XMPP功能:

application: nsnfaq
version: 1
runtime: python
api_version: 1

inbound_services:
- xmpp_message

handlers:
- url: /_ah/xmpp/message/chat/
  script: main.py
3. 修改main.py 如下:

from google.appengine.api import xmpp
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
 
class XMPPHandler(webapp.RequestHandler):
    def post(self):
        message = xmpp.Message(self.request.POST)
        if message.body[0:5].lower() == 'hello':
            message.reply("Greetings!")
 
application = webapp.WSGIApplication([('/_ah/xmpp/message/chat/', XMPPHandler)],
                                     debug=True)
 
def main():
    run_wsgi_app(application)
 
if __name__ == "__main__":
    main()

 

4. deply到google上。提示Process exited with code 0,即为成功部署。

 

5. 验证功能,在GTalk中添加,nsnfaq@appspot.com为好友。发送hello,得到Greetings!回复。

至此,一个Demo版XMPP Robot就实现了。更加智能的Robot,需要扩充post函数的功能了。打算做成一个FAQ~~

6. 如果有多个RequestHandler,需要做少量修改。如:
application = webapp.WSGIApplication([('/', BrowseHandler ),
                                      ('/_ah/xmpp/message/chat/, XMPPHandler),
                                     ],
                                     debug=True)
debug=True 参数可将应用程序设置为调试模式,这样可通知 webapp 在处理程序引发异常时在浏览器中显示堆栈跟踪。
默认情况下,当发生错误时,webapp 只返回一个 HTTP 500 错误。


App Engine 基于在应用程序的 app.yaml 文件中所指定的网址和映射将请求传送至 Python 脚本。webapp WSGIApplication 会进一步将具体的网址路径映射至请求处理程序。可以将所有非静态网址映射至单个 Python 脚本,然后使该脚本将所有动态网址调度到处理程序。也可以将功能分组成由不同脚本运行的多个 WSGI 应用程序,然后使用 app.yaml 将相应的网址映射至相应的应用程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值