{"id":6186,"date":"2018-09-29T11:49:42","date_gmt":"2018-09-29T02:49:42","guid":{"rendered":"https:\/\/gunmagisgeek.com\/wordpress\/?p=6186"},"modified":"2018-10-01T10:06:35","modified_gmt":"2018-10-01T01:06:35","slug":"%e3%83%a9%e3%83%b3%e3%83%80%e3%83%a0%e3%81%ab%e3%81%8a%e5%ba%97%e3%82%92%e9%81%b8%e3%82%93%e3%81%a7%e3%81%8f%e3%82%8c%e3%82%8bline-bot%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%9f%e3%80%82","status":"publish","type":"post","link":"https:\/\/gunmagisgeek.com\/blog\/googleappscript\/6186","title":{"rendered":"\u30e9\u30f3\u30c0\u30e0\u306b\u304a\u5e97\u3092\u9078\u3093\u3067\u304f\u308c\u308bLine Bot\u3092\u4f5c\u3063\u305f\u3002"},"content":{"rendered":"<p><img decoding=\"async\" src=\"http:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/linebot180928-e1538185338370-691x1024.png\" alt=\"Line bot\" width=\"600\"  class=\"aligncenter size-large wp-image-6184 border\" srcset=\"https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/linebot180928-e1538185338370-691x1024.png 691w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/linebot180928-e1538185338370-101x150.png 101w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/linebot180928-e1538185338370.png 747w\" sizes=\"(max-width: 691px) 100vw, 691px\" \/><\/p>\n<p>\u300c\uff1f\u98ef\u300d\u3068\u3044\u3046\u30b3\u30de\u30f3\u30c9\u306e\u5f8c\u306b\u6539\u884c\u3067\u5730\u540d\u3068\u4e88\u7b97\u3092\u5165\u308c\u3066\u545f\u304f\u3068\u3001\u3050\u308b\u306a\u3073\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u306b\uff13\u4ef6\u9078\u3093\u3067URL\u3092\u8fd4\u3059BOT\u3092\u3064\u304f\u308a\u307e\u3057\u305f\u3002<\/p>\n<h2>\u8ab2\u984c<\/h2>\n<p>\u57fa\u672c\u7684\u306b\u30a2\u30eb\u30b3\u30fc\u30eb\u304c\u98f2\u3081\u306a\u3044\u306e\u3068\u3001\u98df\u3079\u7269\u306b\u5bfe\u3059\u308b\u597d\u304d\u5acc\u3044\u306f\u3042\u308c\u3069\u3053\u3060\u308f\u308a\u304c\u4e00\u5207\u306a\u3044\u306e\u3067\u3001\u300c\u3069\u3053\u304b\u5e97\u6c7a\u3081\u3068\u3044\u3066\u300d\u3068\u8a00\u308f\u308c\u305f\u969b\u306b\u304a\u3059\u3059\u3081\u3067\u304d\u308b\u3088\u3046\u306a\u5e97\u306e\u30b9\u30c8\u30c3\u30af\u304c\u81ea\u5206\u306e\u306a\u304b\u306b\u3042\u308a\u307e\u305b\u3093\u3002\u4ed5\u65b9\u304c\u306a\u3044\u306e\u3067\u3001\u98df\u3079\u30ed\u30b0\u3084\u304f\u308b\u30ca\u30d3\u306a\u3069\u3092\u691c\u7d22\u3057\u3066\u300c\u3053\u306e\u5e97\u3069\u3046\uff1f\u300d\u3068\u3044\u3063\u305f\u63d0\u6848\u3092\u3059\u308b\u308f\u3051\u3067\u3059\u304c\u3001\u300c\u79c1\u306e\u304a\u3059\u3059\u3081\u306e\u5e97\u3000\uff1d\u3000\u3050\u308b\u306a\u3073\u306e\u691c\u7d22\u7d50\u679c\u300d\u306a\u3089\u3001\u5225\u306bBot\u3067\u3044\u3044\u3058\u3083\u306a\u3044\u304b\u3068\u601d\u3044\u3064\u3044\u305f\u306e\u3067\u4f5c\u3063\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<h2>\u4ed5\u7d44\u307f<\/h2>\n<p>Line bot\u306fGoogle Apps Script\u3092\u4f7f\u3063\u3066\u4f5c\u3063\u3066\u307e\u3059\u3002<br \/>\n\u521d\u3081\u306fAWS Lamda\u3092\u4f7f\u3046\u4e88\u5b9a\u3067\u3057\u305f\u304c\u3001\u3053\u308c\u3060\u3051\u306e\u305f\u3081\u306bAPI Gateway \u306e\u8a2d\u5b9a\u3068\u304b\u3059\u308b\u306e\u3082\u3081\u3093\u3069\u304f\u3055\u3044\u3057\u3001GAS\u3060\u3068\uff11\u30d5\u30a1\u30a4\u30eb\u3067\u4f5c\u308c\u3066\u697d\u305d\u3046\u3060\u3063\u305f\u306e\u3067\u3002<br \/>\n\u304a\u5e97\u306e\u60c5\u5831\u306f\u300c\u3050\u308b\u306a\u3073 Web Service\u300d\u306e\u300c\u30ec\u30b9\u30c8\u30e9\u30f3\u691c\u7d22API\u300d\u3092\u4f7f\u3063\u3066\u53d6\u5f97\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2>Line\u5074\u306e\u8a2d\u5b9a<\/h2>\n<p><a href=\"https:\/\/developers.line.me\/ja\/\">LINE Developers<\/a>\u306b\u767b\u9332\u3057\u3001\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u4f5c\u6210\u3001\u65b0\u898f\u30c1\u30e3\u30f3\u30cd\u30eb\u3068\u3057\u3066\u300cMessaging API\u300d\u3092\u767b\u9332\u3057\u307e\u3059\u3002<br \/>\n\u4eca\u56de\u306f\u304a\u8a66\u3057\u306a\u306e\u3067\u30d7\u30e9\u30f3\u306f\u300cDeveloper Trial\u300d\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u300cMessaging API\u300d\u306e\u8a2d\u5b9a\u753b\u9762\u3067\u300cWebhook\u9001\u4fe1\u300d\u3092\u6709\u52b9\u306b\u3057\u3001\u300cWebhook URL\u300d\u306bGAS\u306eURL\u3092\u5165\u529b\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\n(GAS\u306eURL\u306f\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u516c\u958b\u5f8c\u306b\u53d6\u5f97\u3057\u3066\u5165\u529b\u3057\u307e\u3059)<br \/>\n\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u751f\u6210\u3057\u3066\u30e1\u30e2\u3063\u3066\u7f6e\u304f\u306e\u3092\u5fd8\u308c\u305a\u306b\u3002<br \/>\n<img decoding=\"async\" src=\"http:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/LINE-Developers-2018-09-28-12-27-05-1024x375.png\" alt=\"\" width=\"600\" class=\"alignnone size-large wp-image-6183 border\" srcset=\"https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/LINE-Developers-2018-09-28-12-27-05-1024x375.png 1024w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/LINE-Developers-2018-09-28-12-27-05-300x110.png 300w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/LINE-Developers-2018-09-28-12-27-05-768x282.png 768w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/LINE-Developers-2018-09-28-12-27-05.png 1623w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h2>\u3050\u308b\u306a\u3073\u5074\u306e\u8a2d\u5b9a<\/h2>\n<p><a href=\"https:\/\/api.gnavi.co.jp\/api\/\">\u3050\u308b\u306a\u3073web\u30b5\u30fc\u30d3\u30b9<\/a>\u306b\u767b\u9332\u3057\u3001\u300c\u30de\u30a4\u30da\u30fc\u30b8\u300d\u304b\u3089\u300c\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u300d\u3057\u3066\u30a2\u30af\u30bb\u30b9\u30ad\u30fc\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002<br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"1021\" height=\"824\" src=\"http:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/42ba2f2f407e4ee0ba729ee8d757e74a.png\" alt=\"\u3050\u308b\u306a\u3073web\u30b5\u30fc\u30d3\u30b9\" wwidth=\"600\"   class=\"alignnone size-full wp-image-6185 border\" srcset=\"https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/42ba2f2f407e4ee0ba729ee8d757e74a.png 1021w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/42ba2f2f407e4ee0ba729ee8d757e74a-186x150.png 186w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/42ba2f2f407e4ee0ba729ee8d757e74a-768x620.png 768w\" sizes=\"auto, (max-width: 1021px) 100vw, 1021px\" \/><\/p>\n<h2>Google App Script\u306e\u8a2d\u5b9a<\/h2>\n<p><a href=\"https:\/\/drive.google.com\/\">Google\u30c9\u30e9\u30a4\u30d6<\/a>\u3067\u300c\u65b0\u898f\u2192\u305d\u306e\u4ed6\u2192Google Apps Script\u300d\u3092\u9078\u629e\u3057\u3001\u65b0\u305f\u306a\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<h3>\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9<\/h3>\n<pre class=\"lang:js decode:true \" title=\"linebot.gs\" >\/\/ LINE developers\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u53d7\u4fe1\u8a2d\u5b9a\u306b\u8a18\u8f09\u306e\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\nvar LINE_TOKEN = 'Line message api\u306e\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3';\nvar LINE_URL = 'https:\/\/api.line.me\/v2\/bot\/message\/reply';\n\n\/\/\u3050\u308b\u306a\u3073 web Service \u306e\u30a2\u30af\u30bb\u30b9\u30ad\u30fc\nvar GURUNAVI_TOKEN = '\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30a2\u30af\u30bb\u30b9\u30ad\u30fc';\nvar GURUNAVI_URL = 'https:\/\/api.gnavi.co.jp\/RestSearchAPI\/v3\/?';\n\n\/\/post\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d7\u53d6\u3063\u305f\u3068\u304d\u306b\u767a\u706b\u3059\u308b\u95a2\u6570\nfunction doPost(e) {\n\n  \/\/ \u5fdc\u7b54\u7528Token\u3092\u53d6\u5f97\n  var replyToken = JSON.parse(e.postData.contents).events[0].replyToken;\n  \/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d6\u5f97\n  var userMessage = JSON.parse(e.postData.contents).events[0].message.text;\n\n  \/\/\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6539\u884c\u3054\u3068\uff08\u30b3\u30de\u30f3\u30c9\u3001\u30a2\u30c9\u30ec\u30b9\u3001\u4e88\u7b97\uff09\u306b\u5206\u5272\n  var command = userMessage.split(\"n\");\n  var tag = command[0]; \/\/\u30b3\u30de\u30f3\u30c9\u53d6\u5f97\n  \n  \/\/ \u545f\u304b\u308c\u305f\u5185\u5bb9\u304cbot\u5b9b\u3066\u3067\u306a\u3044\u5834\u5408\u306f\u306a\u306b\u3082\u3057\u306a\u3044\u3002\n  if(!tag == \"\uff1f\u98ef\") return null;\n  \n  var address = command[1]; \/\/\u4f4f\u6240\u53d6\u5f97\n  var budget =  command[2]; \/\/\u4e88\u7b97\u53d6\u5f97\n  \n  \/\/\u3050\u308b\u306a\u3073\u306b\u554f\u5408\u305b\u3066\u5e97\u60c5\u5831\u3092\u53d6\u5f97\n  var shops = getShopData(address, budget);\n  \n  \/\/\u8fd4\u7b54\u7528\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u4f5c\u6210\n  var messages = [\n    {\n    'type': 'text',\n    'text':  \"\u3053\u3093\u306a\u304a\u5e97\u306f\u3069\u3046\u3067\u3059\u304b\uff1f\",\n    }\n  ]\n  \n  \/* \/\/\u306a\u3093\u304b\u3046\u307e\u304f\u3044\u304b\u306a\u3044\n  shops.forEach(function(shop){\n    var meg = {\n      'type': 'text',\n      'text': shop.url,    \n    }\n    messages.push(meg);\n  });\n  *\/\n  \n  var meg1 = {\n    'type': 'text',\n    'text': shops[0].url,    \n  }\n  messages.push(meg1);\n\n  var meg2 = {\n    'type': 'text',\n    'text': shops[1].url,    \n  }\n  messages.push(meg2);\n\n  var meg3 = {\n    'type': 'text',\n    'text': shops[2].url,    \n  }\n  messages.push(meg3);\n  \n  \/\/line\u3067\u8fd4\u7b54\u3059\u308b\n  UrlFetchApp.fetch(LINE_URL, {\n    'headers': {\n      'Content-Type': 'application\/json; charset=UTF-8',\n      'Authorization': 'Bearer ' + LINE_TOKEN,\n    },\n    'method': 'post',\n    'payload': JSON.stringify({\n      'replyToken': replyToken,\n      'messages': messages,\n    }),\n    });\n  \n  ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);\n\n\n\n}\n\n\/\/\u3050\u308b\u306a\u3073\u554f\u5408\u305b\nfunction getShopData(address, budget){\n    \n  \/\/ \u30ea\u30af\u30a8\u30b9\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\n  var param = {\n    \"keyid\" : GURUNAVI_TOKEN,\n    \"address\" : address,\n    \"hit_per_page\":100\n  }\n  \n  \/\/\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6587\u5b57\u5217\u306b\u5909\u63db\n  var pramStr = Object.keys(param).map(function(key){ return key+\"=\"+param[key]}).join(\"&amp;\")\n\n  \/\/\u3050\u308b\u306a\u3073\u306b\u9001\u4fe1\n  var url = GURUNAVI_URL+pramStr;\n  var response = UrlFetchApp.fetch(url);\n  var content = response.getContentText(\"UTF-8\");  \n  var resJson = JSON.parse(content)\n  \n  \/\/\u4e88\u7b97\u3067\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\n  var filtered = (budget) ? resJson.rest.filter(function(item){ return item.budget &lt;= budget}) : resJson.rest;\n    \n  \/\/\u30e9\u30f3\u30c0\u30e0\u306b\u5e97\u3092\u30bb\u30ec\u30af\u30c8\n  var randomize = goodShuffle(filtered);\n  var selectShop = randomize.slice(0, 5);\n  \nreturn selectShop.map(function(d){ return {name:d.name, url:d.url} });\n  \n}\n\nvar goodShuffle = function (arr) {\n  var i, j, temp;\n  arr = arr.slice();\n  i = arr.length;\n  if (i === 0) {\n    return arr;\n  }\n  while (--i) {\n    j = Math.floor(Math.random() * (i + 1));\n    temp = arr[i];\n    arr[i] = arr[j];\n    arr[j] = temp;\n  }\n  return arr;\n};\n<\/pre>\n<p>GAS\u3092\u300c\u30a6\u30a7\u30d6\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u300d\u3068\u3057\u3066\u516c\u958b\u3059\u308b\u3068URL\u304c\u53d6\u5f97\u3067\u304d\u308b\u307e\u3059\u3002<br \/>\n<img decoding=\"async\" src=\"http:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/gaspush180929.png\" alt=\"\" width=\"600\"  class=\"alignnone size-large wp-image-6187 border\" srcset=\"https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/gaspush180929.png 669w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/gaspush180929-229x150.png 229w\" sizes=\"(max-width: 669px) 100vw, 669px\" \/><\/p>\n<p>\u53d6\u5f97\u3057\u305fURL\u3092Line message API\u306e\u8a2d\u5b9a\u753b\u9762\u3067Webhook URL\u3068\u3057\u3066\u767b\u9332\u3059\u308c\u3070\u5b8c\u6210\u3067\u3059\u3002<br \/>\n<img decoding=\"async\" src=\"http:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/413fb4085dd0795a139ed14cf2fb06c6.png\" alt=\"LINE-Developers-2018-09-28-12-27-05.png (1623\u00c3\u0097595) 2018-09-29 11-18-12\" width=\"600\"  class=\"alignnone size-full wp-image-6188 border\" srcset=\"https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/413fb4085dd0795a139ed14cf2fb06c6.png 507w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/413fb4085dd0795a139ed14cf2fb06c6-300x47.png 300w, https:\/\/gunmagisgeek.com\/blog\/wp-content\/uploads\/2018\/09\/413fb4085dd0795a139ed14cf2fb06c6-500x79.png 500w\" sizes=\"(max-width: 507px) 100vw, 507px\" \/><\/p>\n<h2>\u7dcf\u62ec<\/h2>\n<p>\u30a8\u30e9\u30fc\u51e6\u7406\u3082\u307e\u3063\u305f\u304f\u3057\u3066\u3044\u306a\u3044\u3001\u306a\u305c\u304bforEach\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u3046\u3068\u8fd4\u7b54\u3055\u308c\u306a\u3044\u3068\u3044\u3046\u30d0\u30b0\u306e\u539f\u56e0\u3082\u4e0d\u660e\u306a\u307e\u307e\u306e\u3056\u3063\u304f\u308a\u3068\u3057\u305f\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u3059\u304c\u3001\u3068\u308a\u3042\u3048\u305aBot\u3068\u3057\u3066\u306f\u6a5f\u80fd\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\n\u601d\u3063\u305f\u4ee5\u4e0a\u306b\u7c21\u5358\u306b\u4f5c\u308c\u3066\u697d\u3057\u3044\u306e\u3067\u304a\u3059\u3059\u3081\u3067\u3059\u3002<br \/>\n\u4eca\u5f8c\u306e\u5c55\u958b\u3068\u3057\u3066\u306f\u3001\u3050\u308b\u306a\u3073\u304b\u3089\u53d6\u5f97\u3057\u305f\u60c5\u5831\u306e\u3046\u3061URL\u3057\u304b\u8fd4\u3055\u306a\u3044\u624b\u629c\u304d\u4ed5\u69d8\u3092\u3001\u3082\u3046\u3061\u3087\u3063\u3068\u9811\u5f35\u3063\u3066\u3061\u3083\u3093\u3068\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30e1\u30c3\u30bb\u30fc\u30b8(JSON)\u3092\u751f\u6210\u3057\u3066\u307f\u3084\u3059\u3044\u8fd4\u7b54\u306b\u3059\u308b\u306e\u3068\u3001\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u6761\u4ef6\u3092\u4e88\u7b97\u4ee5\u5916\u3067\u3082\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u305f\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u300c\uff1f\u98ef\u300d\u3068\u3044\u3046\u30b3\u30de\u30f3\u30c9\u306e\u5f8c\u306b\u6539\u884c\u3067\u5730\u540d\u3068\u4e88\u7b97\u3092\u5165\u308c&hellip;<\/p>\n","protected":false},"author":1,"featured_media":6184,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[75],"tags":[],"class_list":["post-6186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-googleappscript","has-post-thumbnail-archive"],"_links":{"self":[{"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/posts\/6186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/comments?post=6186"}],"version-history":[{"count":0,"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/posts\/6186\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/media\/6184"}],"wp:attachment":[{"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/media?parent=6186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/categories?post=6186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gunmagisgeek.com\/blog\/wp-json\/wp\/v2\/tags?post=6186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}