facebook messenger platform开发指南(入门)
2016-05-05 06:19
615 查看
Remarque:此篇译文来自google翻译
入门
这是一个简单的演练,看看在行动平台。阅读完整的指南,以了解功能的更多细节。下面的代码片段是从Node.js的整合。下面的截图显示了新的App仪表盘这是目前可用的一些开发商。这些功能在下面的使者标签目前的应用程序仪表板提供。
步骤
1.创建一个Facebook应用程序和Facebook页面
创建一个新的Facebook应用程序和网页或者使用现有的。Facebook应用程序可以留在沙盒模式和你的网页没有被公开分享范围。该页面的个人资料图片和名称将用于形成你的机器人的“身份”,是什么人会看到,当他们搞的。转到您的应用程序设置,并在产品设置,单
4000
击“添加产品。” 选择“信使”。
2.设置网络挂接
在“产品设置”部分,单击刚刚添加的“信使”的产品,找到网络挂接部分,然后单击设置网络挂接。输入一个网址给网络挂接,输入验证令牌,并选择message_deliveries,
信息,
messaging_optins和
messaging_postbacks下认购领域。
在你的网络连接网址,验证添加代码。您的代码应该寻找验证令牌,并与应对
挑战的验证请 求发送。点击验证并保存新页认购打电话给你的网络挂接一个
GET请求。
app.get('/webhook/', function (req, res) { if (req.query['hub.verify_token'] === '<validation_token>') { res.send(req.query['hub.challenge']); } res.send('Error, wrong validation token'); })
3.获取页面访问令牌
在令牌生成部分,选择您的页面。A页数访问令牌会为你生成。复制此页面访问令牌。注:生成的令牌将在此UI进行保存。每次选择页新的令牌就会生成。然而,创造了以往任何令牌将继续发挥作用。
4.订阅该应用页面
使用在上一步中生成的页面访问令牌,进行下面的调用。这将订阅您的应用程序来获取这个特定页面的更新。curl -ik -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=<token>"
5.接收消息
在您的网络挂接,POST调用。在这个例子中,当消息被发送到一个页面我们专门监听回调。
app.post('/webhook/', function (req, res) { messaging_events = req.body.entry[0].messaging; for (i = 0; i < messaging_events.length; i++) { event = req.body.entry[0].messaging[i]; sender = event.sender.id; if (event.message && event.message.text) { text = event.message.text; // Handle a text message from this sender } } res.sendStatus(200); });
转到你的Facebook页面,并发送一条消息给它。你应该看到消息来你的网络挂接。
6.发送短信
修改我们的网络连接响应的消息回来了。下面是将发回短信,我们发送到页面的无论什么功能。var token = "<page_access_token>"; function sendTextMessage(sender, text) { messageData = { text:text } request({ url: 'https://graph.facebook.com/v2.6/me/messages', qs: {access_token:token}, method: 'POST', json: { recipient: {id:sender}, message: messageData, } }, function(error, response, body) { if (error) { console.log('Error sending message: ', error); } else if (response.body.error) { console.log('Error: ', response.body.error); } }); }
更换上面的评论
sendTextMessage(sender, "Text received, echo: "+ text.substring(0, 200));
7.发送的结构化消息
信使平台支持模板被称为结构化消息。我们将发回一般性消息模板。function sendGenericMessage(sender) { messageData = { "attachment": { "type": "template", "payload": { "template_type": "generic", "elements": [{ "title": "First card", "subtitle": "Element #1 of an hscroll", "image_url": "http://messengerdemo.parseapp.com/img/rift.png", "buttons": [{ "type": "web_url", "url": "https://www.messenger.com/", "title": "Web url" }, { "type": "postback", "title": "Postback", "payload": "Payload for first element in a generic bubble", }], },{ "title": "Second card", "subtitle": "Element #2 of an hscroll", "image_url": "http://messengerdemo.parseapp.com/img/gearvr.png", "buttons": [{ "type": "postback", "title": "Postback", "payload": "Payload for second element in a generic bubble", }], }] } } }; request({ url: 'https://graph.facebook.com/v2.6/me/messages', qs: {access_token:token}, method: 'POST', json: { recipient: {id:sender}, message: messageData, } }, function(error, response, body) { if (error) { console.log('Error sending message: ', error); } else if (response.body.error) { console.log('Error: ', response.body.error); } }); }
此外,修改我们的网络挂接到我们发送邮件“通用”的任何时间发回的结构化消息。
if (text === 'Generic') { sendGenericMessage(sender); continue; }
8.处理回发
在最后一步,我们发送的结构化的消息了回发。回发是后端调用你的网络挂接当按钮被窃听。这些调用包含有效载荷被设定为按钮。结构化信息按钮支持打开URL和回传。
让我们修改我们的网络挂接处理回发事件。
if (event.postback) { text = JSON.stringify(event.postback); sendTextMessage(sender, "Postback received: "+text.substring(0, 200), token); continue; }
下一步
你已经完成了演练。进入完全指南阅读所有关于不同的东西,你可以用Messenger平台做些事。
相关文章推荐
- [linux] cp: omitting directory `XXX'问题解决
- 易經大意 261_280
- diff 比较两个文件的差异
- 成为C++高手之函数
- Sql Function 在hive, Netezza, Oracle, Redshift之间的相互转换
- 闭包组件
- 毕业论文中的“域”设置
- 关于华擎X99+5820K
- 如何在DAO层既使用注解又使用HibernateDaoSupport
- LeetCode 30. Substring with Concatenation of All Words
- 最近的一些反思
- 这学期计划
- 一台电脑同时运行多个tomcat配置方法
- IDA 插件
- 半夜复习操作系统
- LinkedIn开源Dr. Elephant:Hadoop和Spark性能监控工具
- 0.1秒的价值!浅谈Web前端页面提速问题
- 人工智能幸顿(Hinton)学派
- struts2 Action 获得 http 提交的 from 的参数的4个方法
- LeetCode 213. House Robber II(小偷游戏)