当前位置: 首页 > 工具软件 > GAE TestBed > 使用案例 >

GAE - XMPP Robot

楚奇逸
2023-12-01

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 将相应的网址映射至相应的应用程序。

 类似资料: