{"id":242,"date":"2023-01-31T02:24:00","date_gmt":"2023-01-31T08:24:00","guid":{"rendered":"https:\/\/www.armia.com\/blog\/?p=242"},"modified":"2025-05-12T04:30:19","modified_gmt":"2025-05-12T10:30:19","slug":"how-to-create-facebook-messenger-bots","status":"publish","type":"post","link":"https:\/\/www.armia.com\/blog\/how-to-create-facebook-messenger-bots\/","title":{"rendered":"How To Create Facebook Messenger Bots?"},"content":{"rendered":"<h1>Creating Facebook Messenger Bots<\/h1>\n<p>A chat-bot synonymous known as talk-bot, chatter-bot, Bot, chatterbox, IM bot, interactive agent, or Artificial Conversational Entity) is a computer program designed to simulate a conversation with human users, especially over the Internet. Chat-bots are often integrated into the dialog system of virtual assistants to give them the ability to engaging in casual conversation unrelated to the scope of their primary expert systems. A chat-bot can be considered as a service that runs on certain rules\/AI, with which you can&#8217;t interact with a chat interface(FB Messenger\/Slack\/Telegram\/Apple iMessage).<\/p>\n<p>Some of the most common use cases of chat-bots include customer support, sales, personal assistants, concierge etc.<\/p>\n<p><span style=\"font-weight: 400;\">Facebook Messenger bots: How many are there? <\/span><span style=\"font-weight: 400;\">As per Bot-list, the app store for bots, some of the bots include Trivia Blast, Complex, Operator, theScore, NBA, Hangman, Mealou, Digg, Emoji News, etc. Messenger bots provide endless possibilities and enable users to play hangman and trivia, or you can buy stuff online or seek customer support. Designed to make it easier for the users, Bots also enhances the chat experience.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><b>The Configuration and Setup Process<\/b><\/p>\n<p><span style=\"font-weight: 400;\">In order to make things easier for you, we have simplified the whole process in a few steps as given below:<\/span><\/p>\n<p><strong>1) Create an FB page:<\/strong> <a href=\"https:\/\/www.facebook.com\/pages\/create\"><span style=\"font-weight: 400;\">https:\/\/www.facebook.com\/pages\/create<\/span><\/a><\/p>\n<p><strong>2) Create an FB app<\/strong><span style=\"font-weight: 400;\"> &#8211; <\/span><a href=\"https:\/\/developers.facebook.com\/apps\"><span style=\"font-weight: 400;\">https:\/\/developers.facebook.com\/apps<\/span><\/a><\/p>\n<p><strong>3) Install &amp; configure nodejs on your server<\/strong><span style=\"font-weight: 400;\">, if it isn&#8217;t already available.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Clone the project<\/b><span style=\"font-weight: 400;\"> &#8211; <\/span><a href=\"https:\/\/github.com\/fbsamples\/messenger-platform-samples\"><span style=\"font-weight: 400;\">https:\/\/github.com\/fbsamples\/messenger-platform-samples<\/span><\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">(nodejs based example).<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Follow the instructions to complete the setup<\/b><span style=\"font-weight: 400;\"> &#8211; <\/span><a href=\"https:\/\/github.com\/fbsamples\/messenger-platform-samples\/blob\/master\/node\/README.md\"><span style=\"font-weight: 400;\">https:\/\/github.com\/fbsamples\/messenger-platform-samples\/blob\/master\/node\/README.md<\/span><\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\"><strong>4)<\/strong> Once you have created your app, let&#8217;s <\/span><b>add messenger to it<\/b><span style=\"font-weight: 400;\">. Go to the App Dashboard and under Product Settings click <\/span><b>&#8220;Add Product&#8221;<\/b><span style=\"font-weight: 400;\"> and select <\/span><b>&#8220;Messenger.&#8221;<\/b><\/p>\n<p><span style=\"font-weight: 400;\"><strong>5)<\/strong> Now, <\/span><b>link your page with the messenger<\/b><span style=\"font-weight: 400;\"> and get the page access token. The below screenshot gives an idea of this:<\/span><\/p>\n<p><a href=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture1.png\" data-rel=\"penci-gallery-image-content\" ><img fetchpriority=\"high\" decoding=\"async\" class=\" wp-image-254 aligncenter\" src=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture1-300x145.png\" alt=\"\" width=\"521\" height=\"252\" srcset=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture1-300x145.png 300w, https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture1.png 683w\" sizes=\"(max-width: 521px) 100vw, 521px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><strong>6)<\/strong> <\/span><b>Set Up\u00a0webhooks<\/b><\/p>\n<p><span style=\"font-weight: 400;\">The below screenshot gives an idea of how webhooks are set up.<\/span><\/p>\n<p><a href=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture2.png\" data-rel=\"penci-gallery-image-content\" ><img decoding=\"async\" class=\" wp-image-255 aligncenter\" src=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture2-300x160.png\" alt=\"\" width=\"518\" height=\"276\" srcset=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture2-300x160.png 300w, https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture2.png 700w\" sizes=\"(max-width: 518px) 100vw, 518px\" \/><\/a><\/p>\n<p><em><span style=\"font-weight: 400;\">In the sample app, this method is defined in app.js:<\/span><\/em><br \/>\n<code><br \/>\napp.get('\/webhook', function(req, res) {<br \/>\nif (req.query['hub.mode'] === 'subscribe' &amp;&amp;<br \/>\nreq.query['hub.verify_token'] === ) {<br \/>\nconsole.log(\"Validating webhook\");<br \/>\nres.status(200).send(req.query['hub.challenge']);<br \/>\n} else {<br \/>\nconsole.error(\"Failed validation. Make sure the validation tokens match.\");<br \/>\nres.sendStatus(403);<br \/>\n}<br \/>\n});<br \/>\n<\/code><br \/>\n<span style=\"font-weight: 400;\">since FB requires a valid SSL certificate, we need to make some minor changes to the script. before we start, note the path of the SSL files on your server.<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">Now change the following lines:-<\/span><\/em><br \/>\n<code><br \/>\napp.listen(app.get('port'), function() {<br \/>\nconsole.log('Node app is running on port', app.get('port'));<br \/>\n});<br \/>\n<\/code><br \/>\n<em><span style=\"font-weight: 400;\">to<\/span><\/em><br \/>\n<code><br \/>\nconst fs = require('fs');<br \/>\nvar privateKey  = fs.readFileSync('path_to_key.pem');<br \/>\nvar certificate = fs.readFileSync('path_to_cert.pem');<br \/>\nvar certificateAuth = fs.readFileSync('path_to_ca.crt');<br \/>\nvar credentials = {<br \/>\nkey: privateKey,<br \/>\ncert: certificate,<br \/>\nca: certificateAuth<br \/>\n};<br \/>\nhttps.createServer(credentials, app).listen(app.get('port'), function(){<br \/>\nconsole.log('Node app updated running on port', app.get('port'));<br \/>\n});<br \/>\n<\/code><br \/>\n<span style=\"font-weight: 400;\">This allows FB to verify the SSL issued to your domain (without this change, the setup webhooks step won&#8217;t be completed) and hence its mandatory.<\/span><\/p>\n<p><strong>7) <\/strong><b>Subscribe the App to the Page<\/b><\/p>\n<p><span style=\"font-weight: 400;\">In the Web-hooks section, <\/span><b>subscribe the\u00a0<\/b><span style=\"font-weight: 400;\"><b>web-hook<\/b>\u00a0for your page. The below screenshot would help you get a clearer picture of how it&#8217;s done.<\/span><\/p>\n<p><a href=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture3.png\" data-rel=\"penci-gallery-image-content\" ><img decoding=\"async\" class=\" wp-image-256 aligncenter\" src=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture3-300x145.png\" alt=\"\" width=\"486\" height=\"235\" srcset=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture3-300x145.png 300w, https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture3.png 700w\" sizes=\"(max-width: 486px) 100vw, 486px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><strong>8)<\/strong> The chatbot can now be accessed from the messenger section within your FB profile with the below-mentioned URL,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">https:\/\/www.facebook.com\/messages\/t\/{FB_PAGE_MSG_ID<\/span><span style=\"font-weight: 400;\">}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">eg:- if your FB page ID is PAGENAME-119052895406724, {FB_PAGE_MSG_ID} would be 119052895406724<\/span><\/p>\n<p><span style=\"font-weight: 400;\">9) Now that the configuration is completed, let us <\/span><b>listen for incoming messages &amp; echo back the same to the user.<\/b><\/p>\n<p><em><span style=\"font-weight: 400;\">In the sample app, this method is also defined in app.js:-<\/span><\/em><br \/>\n<code><br \/>\nfunction receivedMessage(event) {<br \/>\nvar senderID = event.sender.id;<br \/>\nvar message = event.message;<br \/>\nvar messageText = message.text;<br \/>\nsendTextMessage(senderID, messageText);<br \/>\n}<br \/>\n<\/code><br \/>\n<em><span style=\"font-weight: 400;\">sendTextMessage formats the data in the request:-<\/span><\/em><br \/>\n<code><br \/>\nfunction sendTextMessage(recipientId, messageText) {<br \/>\nvar messageData = {<br \/>\nrecipient: {<br \/>\nid: recipientId<br \/>\n},<br \/>\nmessage: {<br \/>\ntext: messageText<br \/>\n}<br \/>\n};<br \/>\ncallSendAPI(messageData);<br \/>\n}<br \/>\n<\/code><br \/>\n<em><span style=\"font-weight: 400;\">callSendAPI calls the Send API:-<\/span><\/em><br \/>\n<code><br \/>\nfunction callSendAPI(messageData) {<br \/>\nrequest({<br \/>\nuri: 'https:\/\/graph.facebook.com\/v2.6\/me\/messages',<br \/>\nqs: { access_token: PAGE_ACCESS_TOKEN },<br \/>\nmethod: 'POST',<br \/>\njson: messageData<br \/>\n}, function (error, response, body) {<br \/>\nif (!error &amp;&amp; response.statusCode == 200) {<br \/>\nvar recipientId = body.recipient_id;<br \/>\nvar messageId = body.message_id;<br \/>\nconsole.log(\"Successfully sent generic message with id %s to recipient %s\", messageId, recipientId);<br \/>\n} else {<br \/>\nconsole.error(\"Unable to send message.\");<br \/>\nconsole.error(response);<br \/>\nconsole.error(error);<br \/>\n}<br \/>\n});<br \/>\n}<br \/>\n<\/code><br \/>\n<span style=\"font-weight: 400;\"><strong>11)<\/strong> Right now our chat-bot just echoes back whatever the user sends to it. So the next step would be to <\/span><b>process the messages received &amp; send back appropriate responses.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">api.ai would help us out with this. You can use your Google account to sign up for a new api.ai account:-<\/span><\/p>\n<p><a href=\"https:\/\/console.api.ai\/api-client\/#\/login\"><span style=\"font-weight: 400;\">https:\/\/console.api.ai\/api-client\/#\/login<\/span><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><strong>12)<\/strong> Once your account is ready, use the <\/span><b>&#8216;Create Agent&#8217;<\/b><span style=\"font-weight: 400;\"> link in the dashboard. The below screenshot will give you an idea of the same.<\/span><a href=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture4.png\" data-rel=\"penci-gallery-image-content\" ><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-258 aligncenter\" src=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture4-300x145.png\" alt=\"\" width=\"535\" height=\"258\" srcset=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture4-300x145.png 300w, https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture4.png 700w\" sizes=\"(max-width: 535px) 100vw, 535px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><strong>13)<\/strong> Now, go <\/span><b>to the settings section<\/b><span style=\"font-weight: 400;\"> of your agent and <\/span><b>copy the &#8216;Client access token&#8217;<\/b><span style=\"font-weight: 400;\"> as shown in the below screenshot.<\/span><\/p>\n<p><a href=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture5.png\" data-rel=\"penci-gallery-image-content\" ><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-259 aligncenter\" src=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture5-300x145.png\" alt=\"\" width=\"487\" height=\"235\" srcset=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture5-300x145.png 300w, https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture5.png 700w\" sizes=\"(max-width: 487px) 100vw, 487px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><strong>14)<\/strong> Since intents &amp; Entities form the backbone of the api.ai agent. proper manipulation of these would help in training the agent to handle different types of client queries you would expect for your business.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Since the details of these are beyond the scope of this article. please refer to the docs link for more info:-<\/span> <a href=\"https:\/\/api.ai\/docs\/getting-started\/basics\"><span style=\"font-weight: 400;\">https:\/\/api.ai\/docs\/getting-started\/basics<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>15)<\/strong> Besides training our agent, api.ai comes with a set of predefined query\/responses. Then <\/span><b>navigate to &#8216;Small Talk&#8217;<\/b><span style=\"font-weight: 400;\"> section in the left menu and <\/span><b>enable it<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This would let the agent answer the usual banter with the user (eg:- how are you?\/what are you? etc).<\/span><\/p>\n<p><a href=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture6.png\" data-rel=\"penci-gallery-image-content\" ><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-260 aligncenter\" src=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture6-300x145.png\" alt=\"\" width=\"488\" height=\"236\" srcset=\"https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture6-300x145.png 300w, https:\/\/www.armia.com\/blog\/wp-content\/uploads\/2017\/08\/Picture6.png 700w\" sizes=\"(max-width: 488px) 100vw, 488px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><strong>16)<\/strong> Next, <\/span><b>install the apiai package for nodejs <\/b><span style=\"font-weight: 400;\">on your server. then <\/span><b>add the following lines to app.js &#8211;<\/b><br \/>\n<code><br \/>\nconst apiai = require('apiai');<br \/>\nvar srv = apiai(CLIENT_ACCESS_TOKEN);<br \/>\nfunction receivedMessage(event) {<br \/>\nvar senderID = event.sender.id;<br \/>\nvar message = event.message;<br \/>\nvar messageText = message.text;<br \/>\nvar requestAPI = srv.textRequest(messageText, {<br \/>\nsessionId: Math.floor((Math.random() * 100000) + 1)<br \/>\n});<br \/>\nrequestAPI.on('response', function(response) {<br \/>\nconsole.log(response);<br \/>\n\/\/check the response type from api.ai<br \/>\nif(response.result.fulfillment.speech != '') {<br \/>\nsendTextMessage(senderID, response.result.fulfillment.speech);<br \/>\n} else {<br \/>\nsendTextMessage(senderID, \"I'm sorry, could you be more specific?\");<br \/>\n}<br \/>\n});<br \/>\nrequestAPI.on('error', function(error) {<br \/>\nconsole.log(error);<br \/>\nsendTextMessage(senderID, \"Sorry, but I just couldn't figure that out!\");<br \/>\n});<br \/>\nrequestAPI.end();<br \/>\n}<br \/>\n<\/code><br \/>\n<span style=\"font-weight: 400;\"><strong>17)<\/strong> Now that it&#8217;s all done, you can head over to your FB Messenger and indulge in some small talk with your chat-bot.<\/span><\/p>\n<h2><b>Case Study of FB Messenger &amp; api.ai<\/b><\/h2>\n<p>Now we will see how FB Messenger would provide us with the chat interface &amp; api.ai would work as the agent to analyze the user input and generate the corresponding responses. The casual messages would be answered by the AI, for other queries, the Bot uses Google&#8217;s search API to look it up in stack-overflow &amp; provide some suggestions (so it would be accurate only in case of technical questions, in other cases the answer might not be spot on). The level of interaction can be improved by further training the AI.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Demo<\/strong><\/span><\/p>\n<p><a href=\"https:\/\/www.facebook.com\/messages\/t\/armiachatbot\">https:\/\/www.facebook.com\/messages\/t\/armiachatbot<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Click the button below to download the sample code used to create the sample above. You can use it to clone for your purpose<\/p>\n<p><!--HubSpot Call-to-Action Code --><span id=\"hs-cta-wrapper-34cf44bc-8e96-49ac-840a-50211a6f8c8d\" class=\"hs-cta-wrapper\"><span id=\"hs-cta-34cf44bc-8e96-49ac-840a-50211a6f8c8d\" class=\"hs-cta-node hs-cta-34cf44bc-8e96-49ac-840a-50211a6f8c8d\"><!-- [if lte IE 8]>\n\n\n<div id=\"hs-cta-ie-element\"><\/div>\n\n\n<![endif]--><a href=\"https:\/\/cta-redirect.hubspot.com\/cta\/redirect\/2725694\/34cf44bc-8e96-49ac-840a-50211a6f8c8d\"><img decoding=\"async\" id=\"hs-cta-img-34cf44bc-8e96-49ac-840a-50211a6f8c8d\" class=\"hs-cta-img\" style=\"border-width: 0px;\" src=\"https:\/\/no-cache.hubspot.com\/cta\/default\/2725694\/34cf44bc-8e96-49ac-840a-50211a6f8c8d.png\" alt=\"Download Sample Bot Code\" \/><\/a><\/span><script charset=\"utf-8\" src=\"https:\/\/js.hscta.net\/cta\/current.js\"><\/script><script type=\"text\/javascript\"> hbspt.cta.load(2725694, '34cf44bc-8e96-49ac-840a-50211a6f8c8d', {}); <\/script><\/span><!-- end HubSpot Call-to-Action Code --><\/p>\n<p>*<b>Note<\/b><\/p>\n<ul>\n<li>The chatbot would work out of FB Messenger &amp; is linked to the FB page, so you can&#8217;t have it integrated within your website.<\/li>\n<li>You would also need a domain name with SSL provided by any authorized 3rd party (Go-daddy\/VeriSign etc) to set up the Messenger back-end.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><b>Conclusion:<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Chatbots are immensely used by instant messaging platforms like <a href=\"https:\/\/www.armia.com\/blog\/how-to-create-facebook-messenger-bots\/\">Facebook Messenger<\/a>, Kik,\u00a0and We-chat for marketing, customer service entertainment purposes. The bots often appear as one among the participants in a group chat or as one of the user&#8217;s contacts. Some IM bots are able to connect to outside databases and provide the users with weather reports, movie timings, driving directions, stock quotes, and other details. Renowned eateries like Domino&#8217;s, Disney, Yamato&#8217;s line, Pizza Hut, nerdify, have launched their own chat-bots to promote user engagement and to promote their services and products, making it easier for customers to order food. In the travel industry, many airlines and agencies took the aid of Messenger and introduced chat-bot services. Using AI, Aeromexico&#8217;s sold tickets and answered questions and both <\/span><span style=\"font-weight: 400;\">KLM&#8217;s and Aerom\u00c3\u00a9xico&#8217;s provided flight status updates, allowing users to check in for flights, provided hotel recommendations, recreational activities and deliver mobile boarding passes. China is one of the countries who has been providing services via We-chat.<\/span><\/p>\n<p>If you want the code sample used to create the bot above, then you can get it for free to start your own or bot or we could design something for you.<\/p>\n<p><span style=\"font-weight: 400;\">You can get in touch with us for more information @\u00a0<a href=\"https:\/\/www.armia.com\">https:\/\/www.armia.com<\/a><\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Creating Facebook Messenger Bots A chat-bot synonymous known as talk-bot, chatter-bot, Bot, chatterbox, IM bot, interactive agent, or Artificial Conversational Entity) is a computer program designed to simulate a conversation&hellip;<\/p>\n","protected":false},"author":1024,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/posts\/242"}],"collection":[{"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/users\/1024"}],"replies":[{"embeddable":true,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/comments?post=242"}],"version-history":[{"count":3,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/posts\/242\/revisions"}],"predecessor-version":[{"id":3988,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/posts\/242\/revisions\/3988"}],"wp:attachment":[{"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/media?parent=242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/categories?post=242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/tags?post=242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}