{"id":2965,"date":"2015-04-28T12:21:55","date_gmt":"2015-04-28T03:21:55","guid":{"rendered":"https:\/\/ec2-54-238-200-5.ap-northeast-1.compute.amazonaws.com\/blog\/?p=2965"},"modified":"2016-09-20T19:27:52","modified_gmt":"2016-09-20T10:27:52","slug":"sinatra%e3%81%a8ngrok%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6webhook%e3%81%ae%e3%83%86%e3%82%b9%e3%83%88%e3%82%92%e6%a5%bd%e3%81%ab%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/sendgrid.kke.co.jp\/blog\/?p=2965","title":{"rendered":"Sinatra\u3068ngrok\u3092\u4f7f\u3063\u3066Webhook\u306e\u30c6\u30b9\u30c8\u3092\u697d\u306b\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"<p style=\"background-color: #ffffff; margin: 0; padding: 0px;\"><img decoding=\"async\" src=\"https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/sinatra-classic-hd-500.png\" alt=\"Sinatra\u3068ngrok\u3092\u4f7f\u3063\u3066Webhook\u306e\u30c6\u30b9\u30c8\u3092\u697d\u306b\u3059\u308b\u65b9\u6cd5\" height=\"300\" class=\"aligncenter size-full wp-image-2969 noshadow\" style=\"display: block; margin: auto;\" srcset=\"https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/sinatra-classic-hd-500.png 500w, https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/sinatra-classic-hd-500-300x240.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<blockquote>\n<p>\u3053\u306e\u8a18\u4e8b\u306f <a href=\"https:\/\/sendgrid.com\/blog\/simple-webhook-testing-using-sinatra-ngrok\/\" target=\"_blank\">Simple Webhook Testing Using Sinatra and ngrok<\/a> \u306e\u6284\u8a33\u3067\u3059\u3002<\/p>\n<\/blockquote>\n<p style=\"margin-bottom: 10px;\"><a href=\"https:\/\/sendgrid.kke.co.jp\/blog\/?p=1851\" target=\"_blank\">Webhook<\/a>\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068\u30b5\u30fc\u30d3\u30b9\u3092\u5bc6\u306b\u9023\u643a\u3055\u305b\u308b\u306e\u306b\u6709\u52b9\u306a\u65b9\u6cd5\u3067\u3059\u3002\u3067\u3082\u3001\u30c7\u30d0\u30c3\u30b0\u3057\u3088\u3046\u3068\u601d\u3046\u3068\u3001\u3061\u3087\u3063\u3068\u9762\u5012\u306b\u611f\u3058\u308b\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u3002<a href=\"https:\/\/sendgrid.kke.co.jp\/?p=mypage.manual\" target=\"_blank\">API\u30de\u30cb\u30e5\u30a2\u30eb<\/a>\uff08<a href=\"https:\/\/sendgrid.kke.co.jp\/?p=signup.form\" target=\"_blank\">\u65b0\u898f\u4f1a\u54e1\u767b\u9332<\/a>\u304c\u5fc5\u8981\uff09\u3067\u306fWebhook\u306e\u30c7\u30d0\u30c3\u30b0\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u7c21\u5358\u306b\u69cb\u7bc9\u3067\u304d\u3066\u4f7f\u3044\u3084\u3059\u3044Webhook\u306e\u30c6\u30b9\u30c8\u74b0\u5883\u306b\u306f\u3069\u3046\u3044\u3063\u305f\u3082\u306e\u304c\u3042\u308b\u3067\u3057\u3087\u3046\u304b\uff1f\u4eca\u56de\u306f\u3001<a href=\"https:\/\/ngrok.com\/\" target=\"_blank\">ngrok<\/a>\u3092\u5229\u7528\u3057\u3066<a href=\"http:\/\/www.sinatrarb.com\/\" target=\"_blank\">Sinatra<\/a>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067Webhook\u3092\u53d7\u3051\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002\u3053\u306e\u7d44\u307f\u5408\u308f\u305b\u306f\u304b\u306a\u308a\u5f37\u529b\u3067\u3059\u3002<\/p>\n<p style=\"margin-bottom: 20px;\">node.js\u3092\u5229\u7528\u3059\u308b\u306e\u3067\u3042\u308c\u3070\u3001<a href=\"https:\/\/sendgrid.com\/blog\/test-webhooks-ngrok\/\" target=\"_blank\">\u3053\u3061\u3089<\/a>\u306eWebhook\u306e\u30c6\u30b9\u30c8\u306b\u95a2\u3059\u308b\u8a18\u4e8b\u304c\u53c2\u8003\u306b\u306a\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n<p><!--more--><\/p>\n<div style=\"clear:both;width:auto;height:40px;\"><!----><\/div>\n<h4><strong>\u306f\u3058\u3081\u306b<\/strong><\/h4>\n<p style=\"margin-bottom: 10px;\">\u524d\u63d0\u6761\u4ef6\u3068\u3057\u3066Ruby\u3068RubyGems\u306e\u74b0\u5883\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002Ruby\u306b\u3064\u3044\u3066\u3042\u307e\u308a\u8a73\u3057\u304f\u306a\u3044\u5834\u5408\u3001<a href=\"https:\/\/github.com\/sstephenson\/rbenv\" target=\"_blank\">rbenv<\/a>\u3067\u74b0\u5883\u69cb\u7bc9\u3059\u308b\u306e\u304c\u30aa\u30b9\u30b9\u30e1\u3067\u3059\u3002<\/p>\n<p style=\"margin-bottom: 10px;\">\u307e\u305a\u3001\u65b0\u3057\u3044\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u3066<strong>gem install sinatra<\/strong>\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066Sinatra\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u305f\u3089\u3001\u6b21\u306b\u7c21\u5358\u306aSinatra\u30a2\u30d7\u30ea\u3092\u4f5c\u3063\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p style=\"margin-bottom: 10px;\"><strong>webhook.rb<\/strong>\u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u4eca\u56de\u306f\u3001Webhook\u306e\u4e00\u4f8b\u3068\u3057\u3066<a href=\"https:\/\/sendgrid.kke.co.jp\/blog\/?p=753\" target=\"_blank\">SendGrid\u306eEvent Webhook\u6a5f\u80fd<\/a>\u3092\u4f7f\u3063\u3066\u307f\u307e\u3059\u3002<\/p>\n<p style=\"margin-bottom: 20px;\">Event Webhook\u306f\u30dc\u30c7\u30a3\u306bJSON\u3092\u542b\u307f\u307e\u3059\u3002JSON\u306e\u5185\u5bb9\u3092\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306b\u51fa\u529b\u3059\u308b\u30b3\u30fc\u30c9\u3092<strong>webhook.rb<\/strong>\u306b\u8a18\u8ff0\u3057\u307e\u3059\uff1a<\/p>\n<pre class=\"brush: ruby; title: ; notranslate\" title=\"\">\r\nrequire 'sinatra'\r\nrequire 'json'\r\n\r\npost '\/event' do\r\n status 204 #successful request with no body content\r\n\r\n\r\n request.body.rewind\r\n request_payload = JSON.parse(request.body.read)\r\n puts request_payload\r\n\r\n\r\n #append the payload to a file\r\n File.open(&quot;events.txt&quot;, &quot;a&quot;) do |f|\r\n   f.puts(request_payload)\r\n end\r\nend\r\n<\/pre>\n<p style=\"margin-bottom: 20px;\">\u305f\u3063\u305f\u3053\u308c\u3060\u3051\u3067\u3001Sinatra\u306f<strong>\/event<\/strong> URL\u306b\u5bfe\u3059\u308b<strong>POST<\/strong>\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d7\u3051\u4ed8\u3051\u3066\u3001\u95a2\u9023\u3059\u308b\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n<div style=\"clear:both;width:auto;height:40px;\"><!----><\/div>\n<h4><strong>Sinatra\u3092\u5b9f\u884c\u3057\u3066\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u516c\u958b\u3059\u308b<\/strong><\/h4>\n<p style=\"margin-bottom: 10px;\">ruby webhook.rb \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u30a2\u30d7\u30ea\u3092\u8d77\u52d5\u3059\u308b\u3068\u3001Sinatra\u306fWEBrick Web\u30b5\u30fc\u30d0\u3092\u8d77\u52d5\u3057\u3066\u5f85\u3061\u53d7\u3051\u30dd\u30fc\u30c8\u3092\u8868\u793a\u3057\u307e\u3059\u3002\u6a19\u6e96\u306e\u5f85\u3061\u53d7\u3051\u30dd\u30fc\u30c8\u306f4567\u3067\u3059\u3002<\/p>\n<p style=\"margin-bottom: 20px;\">\u6b21\u306b\u3001\u3053\u3053\u3067\u5b9f\u884c\u3057\u305f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u4e0a\u306b\u516c\u958b\u3057\u307e\u3059\u3002\u3053\u3053\u3067ngrok\u304c\u767b\u5834\u3057\u307e\u3059\u3002ngrok\uff08version 2.0\uff09\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u65b0\u3057\u3044\u30bf\u30fc\u30df\u30ca\u30eb\u3092\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002<strong>ngrok http 4567<\/strong>\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066ngrok URL\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u306engrok URL\u306b\u30d6\u30e9\u30a6\u30b6\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068Sinatra\u6a19\u6e96\u306e\u300cSinatra doesn&#8217;t know this ditty.\u300d\u30da\u30fc\u30b8\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306f\u305a\u3067\u3059\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-launch2.png\" alt=\"ngrok\u753b\u9762\" width=\"100%\" class=\"alignnone size-full wp-image-2967\" srcset=\"https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-launch2.png 1112w, https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-launch2-300x79.png 300w, https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-launch2-768x203.png 768w, https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-launch2-1024x271.png 1024w\" sizes=\"(max-width: 1112px) 100vw, 1112px\" \/><\/p>\n<p style=\"margin-bottom: 20px;\">SendGrid\u306e<a href=\"https:\/\/sendgrid.com\/app\/appSettings\/type\/eventnotify\/id\/15\" target=\"_blank\">Event Notification App<\/a>\u306bngrok URL\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002Sinatra\u30a2\u30d7\u30ea\u4e0a\u3067\u5b9a\u7fa9\u3057\u305f<strong>\/event<\/strong>\u3092URL\u306b\u8ffd\u52a0\u3059\u308b\u306e\u3092\u5fd8\u308c\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/event-notification2.png\" alt=\"Event Notification\u8a2d\u5b9a\u753b\u9762\" width=\"100%\" class=\"aligncenter size-full wp-image-2966\" srcset=\"https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/event-notification2.png 860w, https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/event-notification2-300x270.png 300w, https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/event-notification2-768x690.png 768w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/p>\n<p style=\"margin-bottom: 20px;\">\u6700\u5f8c\u306bEvent Notification App\u5185\u306e\u300cTest Your Integration\u300d\u30dc\u30bf\u30f3\u3092\u9078\u629e\u3059\u308b\u304b\u3001<a href=\"https:\/\/sendgrid.com\/docs\/API_Reference\/Web_API\/mail.html\" target=\"_blank\">Mail API\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9<\/a>\u306eAPI Workshop\uff08Try It\u30dc\u30bf\u30f3\u306e\u3053\u3068\uff09\u3092\u4f7f\u3063\u3066\u30c6\u30b9\u30c8\u3057\u307e\u3059\u3002<\/p>\n<div style=\"clear:both;width:auto;height:40px;\"><!----><\/div>\n<h4><strong>\u3055\u3044\u3054\u306b<\/strong><\/h4>\n<p style=\"margin-bottom: 20px;\">SendGrid\u304b\u3089\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u884c\u3055\u308c\u308b\u3068\u3001\u53d7\u4fe1\u3057\u305fHTTP\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5185\u5bb9\u304cngrok\u3092\u5b9f\u884c\u3057\u3066\u3044\u308b\u30bf\u30fc\u30df\u30ca\u30eb\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u307e\u305f\u3001Sinatra\u30a2\u30d7\u30ea\u3092\u5b9f\u884c\u3057\u3066\u3044\u308b\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u3082\u540c\u3058\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-receive-1024x143.png\" alt=\"ngrok\" width=\"100%\" class=\"aligncenter size-large wp-image-2968\" srcset=\"https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-receive-1024x143.png 1024w, https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-receive-300x42.png 300w, https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-receive-768x107.png 768w, https:\/\/sendgrid.kke.co.jp\/blog\/wp\/wp-content\/uploads\/2015\/04\/ngrok-receive.png 1074w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p style=\"margin-bottom: 20px;\">Sinatra\u30a2\u30d7\u30ea\u3068\u540c\u3058\u30d5\u30a9\u30eb\u30c0\u5185\u306b\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306aevents.txt\u30d5\u30a1\u30a4\u30eb\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"brush: ruby; title: ; notranslate\" title=\"\">\r\n{\r\n &quot;email&quot;=&gt;&quot;john.doe@sendgrid.com&quot;,\r\n &quot;sg_event_id&quot;=&gt;&quot;VzcPxPv7SdWvUugt-xKymw&quot;,\r\n &quot;sg_message_id&quot;=&gt;&quot;142d9f3f351.7618.254f56.filter-147.22649.52A663508.0&quot;,\r\n &quot;timestamp&quot;=&gt;1386636112, &quot;smtp-id&quot;=&gt;&quot;&lt;142d9f3f351.7618.254f56@sendgrid.com&gt;&quot;,\r\n &quot;event&quot;=&gt;&quot;processed&quot;,\r\n &quot;category&quot;=&gt;&#x5B;&quot;category1&quot;, &quot;category2&quot;, &quot;category3&quot;],\r\n &quot;id&quot;=&gt;&quot;001&quot;,\r\n &quot;purchase&quot;=&gt;&quot;PO1452297845&quot;,\r\n &quot;uid&quot;=&gt;&quot;123456&quot;\r\n}\r\n<\/pre>\n<p style=\"margin-bottom: 20px;\">\u4ee5\u4e0a\u3067\u5b8c\u4e86\u3067\u3059\u3002\u30a4\u30d9\u30f3\u30c8\u306e\u5185\u5bb9\u3092\u78ba\u8a8d\u3059\u308b\u3068\u3068\u3082\u306b\u3001\u3053\u308c\u3092\u5fdc\u7528\u3057\u3066\u69d8\u3005\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u767a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u662f\u975e\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\uff01<\/p>\n<p style=\"margin-bottom: 20px;\"><string>\u53c2\u8003\u8a18\u4e8b<\/strong><\/p>\n<ul style=\"background-image: none; list-style-type: disc;\">\n<li style=\"background-image: none; margin-left: 20px;\"><a href=\"https:\/\/sendgrid.kke.co.jp\/blog\/?p=753\" target=\"_blank\">\u30e1\u30fc\u30eb\u696d\u52d9\u306e\u904b\u7528\u3092\u6700\u9069\u5316\u3059\u308bEvent Webhook\u6a5f\u80fd\u306b\u3064\u3044\u3066<\/a><\/li>\n<li style=\"background-image: none; margin-left: 20px;\"><a href=\"https:\/\/sendgrid.kke.co.jp\/blog\/?p=2678\" target=\"_blank\">Rails\u30a2\u30d7\u30ea\u3067\u30d0\u30a6\u30f3\u30b9\u306a\u3069\u306e\u30a4\u30d9\u30f3\u30c8\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\u30fb\u6d3b\u7528\u3059\u308b\u65b9\u6cd5\uff08Event Webhook\uff09<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u306e\u8a18\u4e8b\u306f Simple Webhook Testing Using Sinatra and ngrok \u306e\u6284\u8a33\u3067\u3059\u3002 Webhook\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068\u30b5\u30fc\u30d3\u30b9\u3092\u5bc6\u306b\u9023\u643a\u3055\u305b\u308b\u306e\u306b\u6709\u52b9\u306a\u65b9\u6cd5\u3067\u3059\u3002\u3067\u3082\u3001\u30c7\u30d0\u30c3\u30b0\u3057\u3088\u3046\u3068 <a class=\"read-more\" href=\"https:\/\/sendgrid.kke.co.jp\/blog\/?p=2965\">&#8230;\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":2,"featured_media":6361,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[11],"tags":[],"class_list":["post-2965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2965"}],"version-history":[{"count":2,"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2965\/revisions"}],"predecessor-version":[{"id":6598,"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2965\/revisions\/6598"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/media\/6361"}],"wp:attachment":[{"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sendgrid.kke.co.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}