从上一篇到现在大概有一个多月了。时隔一个月再登录中国版Bluemix,发现界面竟然更新了,现在的风格和国际版已经基本保持一致!这次我们来体验一下Mobile Service。不过mobile service目前还没有正式发布,入口隐藏的有点深...另外,由于合规原因,中国版Bluemix也使用了不受待见的WoSign数字证书,因此在继续后续步骤之前,请确保所使用的浏览器和操作系统没有拉黑WoSign的根证书(我用的是Mac OS + Firefox)。
首先介绍正确的打开姿势:
登录web控制台后,点击“Create App”
点击左上角的“All Categories”
滚动到页面的最底端
点击“Bluemix Experimental Services”,终于找到了——其实这个服务的全名是:Mobile Messaging Connect.
官方的介绍是这样的:
Mobile Messaging Connect service is a cloud integration service that provides common connectors with leading social messaging tools (e.g. WeChat, etc.) and a messaging based application development framework, and accelerates mobile messaging based app development on Bluemix with toolkits and analytics.
简单来说,这是一个处理社交即时消息的服务,例如:微信!看起来这是一个非常“接地气”的有中国特色的服务!
接下来,我们开始创建一个新的移动消息连接服务:填写服务名称和凭证名称即可创建一个新的服务实例。
创建完成后的服务实例是这样的:
点击服务实例的名字进入详情页面,再点击“New Account”创建一个新的账户。这里只填写名字即可
点击创建完成的账号,进入详情页面。这里的界面好像有bug,若账号没有显示出来,或者名称显示不对的话,刷新一下页面即可。
在详情页面中点击“Social Account”,添加一个“connnected social channel”,是不是看到了熟悉的微信图标?
到这里,相信大家都明白了,去注册一个微信公众平台的测试账号吧!否则后续就没法进行了。
接下来要做的步骤,对于做过微信订阅号/服务号后台的开发的朋友来说是轻车熟路
“App ID”和"App Secret"从微信公众平台开发中心可以找到。“Server Endpoint”和"Server Token",是要填写到微信公众平台开发中心里面去的信息。注意“Type”字段,根据实际情况选择"订阅号",“服务号”还是“开发号”,如果正在使用微信公众平台测试账号的话,就选择“开发号”。生产环境中再选择使用“订阅号”或者“服务号”。
配置完成后,在微信测试账号中发一条消息试试看
一个微信后台就这样轻松搞定了!是不是很简单?一行代码都没有写!不过貌似还缺点什么吧?没错,我们还需要自定义(开发)一个响应消息的endpoint(否则默认响应只能返回“SUCCESS”)。这个endpoint可以用任何语言开发,可以接收http post请求。每当有消息收到时,Bluemix的移动消息连接服务会发出一个http post请求到用户自定义的endpoint上面。
HTTP POST请求的request body示例:
{
"message" : {
"message_key" : "fe043d36-eef1-4806-ae1d-fc0a977afea",
"message_source" : "wechat",
"sender" : "some_user",
"receiver" : "me",
"thread_id" : "thread_random_001",
"message_type" : "text",
"text" : "hi",
"create_time" : 1470240553520
}
}
这是标准的微信公众平台API消息格式,比较容易理解。post过来的消息有了,然后就可以根据业务需要把消息提取出来,保存到数据库或者进行下一步处理了;如果要回复一个消息,直接向当前请求的response body返回以下格式的内容即可:
{
"message_key" : "fe043d36-eef1-4806-ae1d-fc0a977afea",
"sender" : "some_user",
"receiver" : "me",
"thread_id" : "thread_random_001",
"response_time" : 1470240553620,
"responseMessages": [{
"type" : "text",
"value" : "hi, there!"
}]
}
当然,把自定义的endpoint部署在Bluemix的CloudFoundry应用中是一个非常值得推荐的选择。但不管怎么说,这个自定义的endpoint必须是可以通过公网地址或者域名访问到的。最后,把endpoint地址添加到账户(account)配置属性中(还记得在前文在创建account的时候没有填写endpoint字段吧)。
按理说,这个服务应该是腾讯云的标配,现在却被Bluemix抢了风头,哈~~~。顺便展望一下:如果以后将更多的社交消息(QQ,微博,LinkedIn...)甚至是短信服务都集成到Mobile Messaging Connect服务中,再配合中文认知服务,或者把微软的小冰接入进来...
由此可见,Bluemix在落地中国的过程中,的确在本地化方面做得做够用心。期待早日体验到中文版的认知计算服务。
BTW:由于Mobile Messaging Connect服务还没有正式release,在试用过程中会有一些UI界面相关的小bug出现,但总体来说不影响正常使用。