{"id":666,"date":"2018-03-19T10:00:00","date_gmt":"2018-03-19T01:00:00","guid":{"rendered":"https:\/\/cg-method.com\/entry\/chatwork-to-google-calender-notify\/"},"modified":"2026-10-02T15:52:20","modified_gmt":"2026-10-02T06:52:20","slug":"chatwork-to-google-calender-notify","status":"publish","type":"post","link":"https:\/\/cg-method.com\/work-tools\/chatwork-to-google-calender-notify\/","title":{"rendered":"Chatwork\u2502Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u4e88\u5b9a\u3092\u901a\u77e5\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u4e88\u5b9a\u3092Chatwork\u3078\u901a\u77e5\u3059\u308b\u4f8b\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6539\u8a02\u7248\u306f\u4e8c\u91cd\u306e\u6295\u7a3f\u547c\u3073\u51fa\u3057\u3068\u58ca\u308c\u305f\u69cb\u6587\u3092\u9664\u304d\u3001\u4e88\u5b9aID\u3068\u958b\u59cb\u6642\u523b\u3092\u7d44\u306b\u3057\u3066\u3001\u540c\u3058\u9001\u4fe1\u5148\u3078\u51e6\u7406\u6e08\u307f\u306e\u4e88\u5b9a\u3092\u518d\u6295\u7a3f\u3057\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u65e5\u4ed8\u3092\u307e\u305f\u3050\u4e88\u5b9a\u3067\u901a\u77e5\u5019\u88dc\u3092\u78ba\u304b\u3081\u308b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/cg-method.com\/work-tools\/wp-content\/uploads\/2026\/10\/cgm-notification-practice-20261002.zip\">\u901a\u77e5\u9023\u643a\u306e\u7df4\u7fd2\u30b3\u30fc\u30c9\u3068\u30ed\u30fc\u30ab\u30eb\u30c6\u30b9\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\uff08ZIP\uff09<\/a>\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5404article-\u756a\u53f7.js\u3092\u5225\u3005\u306eApps Script\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">article-666.js\u3092\u5225\u306eApps Script\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u4fdd\u5b58\u3057\u3001demoCalendar\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">10\u67082\u65e523:50\u304b\u308915\u5206\u4ee5\u5185\u306b\u3042\u308b\u7fcc\u65e50:00\u306e\u67b6\u7a7a\u306e\u4e88\u5b9a\u30921\u4ef6\u8868\u793a\u3057\u3001\u5b9f\u30ab\u30ec\u30f3\u30c0\u30fc\u3084Chatwork\u3078\u30a2\u30af\u30bb\u30b9\u3057\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\"><code>\/\/ \u5404\u8a18\u4e8b\u306e\u4f8b\u306f\u5225\u3005\u306eApps Script\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u4fdd\u5b58\u3057\u307e\u3059\u3002\nfunction props_() { return PropertiesService.getScriptProperties(); }\nfunction required_(key) {\n  const value = props_().getProperty(key);\n  if (!value) throw new Error(key + &#x27;\u3092\u30b9\u30af\u30ea\u30d7\u30c8\u30d7\u30ed\u30d1\u30c6\u30a3\u3078\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044&#x27;);\n  return value;\n}\nfunction chatConfig_() {\n  const room = required_(&#x27;CHATWORK_ROOM_ID&#x27;);\n  if (!\/^\\d+$\/.test(room)) throw new Error(&#x27;\u30eb\u30fc\u30e0ID\u306f\u6570\u5b57\u3067\u6307\u5b9a\u3057\u307e\u3059&#x27;);\n  return {room: room, token: required_(&#x27;CHATWORK_API_TOKEN&#x27;)};\n}\nfunction plain_(text) {\n  return String(text).replace(\/\\[\/g, &#x27;\uff3b&#x27;).replace(\/\\]\/g, &#x27;\uff3d&#x27;);\n}\nfunction stateKey_(kind, destination, id) {\n  const digest = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256,\n    kind + &#x27;:&#x27; + destination + &#x27;:&#x27; + id, Utilities.Charset.UTF_8);\n  return &#x27;CGM_JOB_&#x27; + Utilities.base64EncodeWebSafe(digest);\n}\nfunction preview_(plans) {\n  \/\/ \u5b9f\u30e1\u30fc\u30eb\u3084\u4e88\u5b9a\u306e\u672c\u6587\u306f\u30ed\u30b0\u3078\u51fa\u3055\u306a\u3044\u3002demo\u95a2\u6570\u3067\u67b6\u7a7a\u306e\u672c\u6587\u3092\u78ba\u8a8d\u3002\n  Logger.log(JSON.stringify(plans.map(p =&gt; ({id: p.id, characters: p.text.length}))));\n  return plans;\n}\nfunction sendControlled_(kind, destination, buildPlans, transport) {\n  if (props_().getProperty(&#x27;SEND_ENABLED&#x27;) !== &#x27;true&#x27;) throw new Error(&#x27;\u9001\u4fe1\u306f\u7121\u52b9\u3067\u3059\u3002\u307e\u305a\u30d7\u30ec\u30d3\u30e5\u30fc\u3057\u3066\u304f\u3060\u3055\u3044&#x27;);\n  const lock = LockService.getScriptLock();\n  if (!lock.tryLock(1000)) throw new Error(&#x27;\u5225\u306e\u5b9f\u884c\u304c\u51e6\u7406\u4e2d\u3067\u3059&#x27;);\n  try {\n    const plans = buildPlans();\n    for (const plan of plans) {\n      const key = stateKey_(kind, destination, plan.id);\n      const state = props_().getProperty(key);\n      if (state === &#x27;done&#x27;) continue;\n      if (state) throw new Error(&#x27;\u7d50\u679c\u4e0d\u660e\u306e\u51e6\u7406\u304c\u3042\u308a\u307e\u3059\u3002\u6295\u7a3f\u5148\u3068\u8a18\u9332\u3092\u7167\u5408\u3057\u3066\u304f\u3060\u3055\u3044&#x27;);\n      \/\/ \u901a\u4fe1\u524d\u306b\u8a18\u9332\u3002\u901a\u4fe1\u6210\u529f\u5f8c\u306e\u8a18\u9332\u5931\u6557\u3067\u3082\u81ea\u52d5\u3067\u518d\u9001\u3057\u306a\u3044\u3002\n      props_().setProperty(key, &#x27;sending&#x27;);\n      try {\n        transport(plan.text);\n        props_().setProperty(key, &#x27;done&#x27;);\n      } catch (error) {\n        props_().setProperty(key, &#x27;unknown&#x27;);\n        throw new Error(&#x27;\u9001\u4fe1\u7d50\u679c\u3092\u78ba\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002\u81ea\u52d5\u518d\u9001\u305b\u305a\u6295\u7a3f\u5148\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044&#x27;);\n      }\n    }\n  } finally { lock.releaseLock(); }\n}\nfunction sendChatwork_(text, config) {\n  const response = UrlFetchApp.fetch(&#x27;https:\/\/api.chatwork.com\/v2\/rooms\/&#x27; + config.room + &#x27;\/messages&#x27;, {\n    method: &#x27;post&#x27;, headers: {&#x27;X-ChatworkToken&#x27;: config.token},\n    payload: {body: text, self_unread: 1}, muteHttpExceptions: true\n  });\n  if (response.getResponseCode() !== 200) throw new Error(&#x27;Chatwork HTTP &#x27; + response.getResponseCode());\n  const result = JSON.parse(response.getContentText());\n  if (!result.message_id) throw new Error(&#x27;message_id\u304c\u3042\u308a\u307e\u305b\u3093&#x27;);\n}\nfunction calendarPlans_(events, now, minutes) {\n  const limit = now.getTime() + minutes * 60000;\n  return events.filter(e =&gt; !e.allDay &amp;&amp; e.start &gt; now.getTime() &amp;&amp; e.start &lt;= limit)\n    .sort((a, b) =&gt; a.start - b.start)\n    .map(e =&gt; ({id: e.id + &#x27;:&#x27; + e.start,\n      text: &#x27;\u3010\u4e88\u5b9a\u306e\u901a\u77e5\u3011&#x27; + Utilities.formatDate(new Date(e.start), &#x27;Asia\/Tokyo&#x27;, &#x27;yyyy-MM-dd HH:mm&#x27;)\n        + &#x27; &#x27; + plain_(e.title) + (e.location ? &#x27;\\n\u5834\u6240: &#x27; + plain_(e.location) : &#x27;&#x27;)}));\n}\nfunction readCalendarPlans_() {\n  const now = new Date();\n  const minutes = 15;\n  const calendar = CalendarApp.getCalendarById(required_(&#x27;CALENDAR_ID&#x27;));\n  if (!calendar) throw new Error(&#x27;\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u53c2\u7167\u3067\u304d\u307e\u305b\u3093&#x27;);\n  const events = calendar.getEvents(now, new Date(now.getTime() + minutes * 60000)).map(e =&gt; ({\n    id: e.getId(), start: e.getStartTime().getTime(), title: e.getTitle(),\n    location: e.getLocation(), allDay: e.isAllDayEvent()\n  }));\n  return calendarPlans_(events, now, minutes);\n}\nfunction demoCalendar() {\n  const now = new Date(&#x27;2026-10-02T23:50:00+09:00&#x27;);\n  const events = [{id:&#x27;demo-A&#x27;,start:new Date(&#x27;2026-10-03T00:00:00+09:00&#x27;).getTime(),title:&#x27;\u7df4\u7fd2\u4f1a&#x27;,location:&#x27;\u7df4\u7fd2\u5ba4&#x27;,allDay:false},\n    {id:&#x27;demo-B&#x27;,start:now.getTime(),title:&#x27;\u958b\u59cb\u6e08\u307f&#x27;,location:&#x27;&#x27;,allDay:false}];\n  const plans = calendarPlans_(events, now, 15);\n  Logger.log(JSON.stringify(plans));\n  return plans;\n}\nfunction previewCalendar() { return preview_(readCalendarPlans_()); }\nfunction sendCalendarToChatwork() {\n  const config = chatConfig_();\n  sendControlled_(&#x27;calendar&#x27;, config.room, readCalendarPlans_, text =&gt; sendChatwork_(text, config));\n}\n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e88\u5b9a\u306e\u9078\u629e\u30681\u56de\u306e\u6295\u7a3f\u3092\u78ba\u8a8d\u3057\u305f\u7d50\u679c<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th style=\"min-width:8em !important\">\u30ed\u30fc\u30ab\u30eb\u6a21\u64ec\u30c6\u30b9\u30c8\u306e\u6761\u4ef6<\/th><th style=\"min-width:8em !important\">\u78ba\u8a8d\u3057\u305f\u7d50\u679c<\/th><\/tr><\/thead><tbody><tr><td>\u65e5\u4ed8\u3092\u307e\u305f\u3050\u901a\u5e38\u306e\u4e88\u5b9a<\/td><td>\u958b\u59cb\u6642\u523b\u304c15\u5206\u4ee5\u5185\u306a\u3089\u5019\u88dc\u306b\u3059\u308b<\/td><\/tr><tr><td>\u958b\u59cb\u6e08\u307f\u30fb\u7d42\u65e5\u30fb\u7bc4\u56f2\u5916\u306e\u4e88\u5b9a<\/td><td>\u5019\u88dc\u304b\u3089\u9664\u304f<\/td><\/tr><tr><td>\u540c\u3058\u4e88\u5b9aID\u3067\u3082\u958b\u59cb\u6642\u523b\u304c\u9055\u3046<\/td><td>\u5225\u306e\u958b\u50ac\u3068\u3057\u3066\u533a\u5225\u3059\u308b<\/td><\/tr><tr><td>\u6b63\u5e38\u306a\u6295\u7a3f<\/td><td>POST\u306f1\u56de\u3067\u3001self_unread\u306f1<\/td><\/tr><tr><td>\u30ed\u30c3\u30af\u7af6\u5408\u30fb\u901a\u4fe1\u30a8\u30e9\u30fc\u30fb\u8a18\u9332\u5931\u6557<\/td><td>\u4e8c\u91cd\u8d77\u52d5\u3084\u81ea\u52d5\u518d\u9001\u3092\u6b62\u3081\u308b<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b9f\u30ab\u30ec\u30f3\u30c0\u30fc\u3068\u6295\u7a3f\u5148\u306e\u8a2d\u5b9a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u30b9\u30af\u30ea\u30d7\u30c8\u30d7\u30ed\u30d1\u30c6\u30a3\u306bCALENDAR_ID\u3001CHATWORK_ROOM_ID\u3001CHATWORK_API_TOKEN\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CALENDAR_ID\u306b\u306f\u5bfe\u8c61\u30ab\u30ec\u30f3\u30c0\u30fc\u306eID\u3092\u6307\u5b9a\u3057\u3001previewCalendar\u3067\u5019\u88dc\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bfe\u8c61\u306f\u4eca\u304b\u308915\u5206\u4ee5\u5185\u306b\u59cb\u307e\u308b\u901a\u5e38\u306e\u4e88\u5b9a\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6642\u523b\u306fDate\u306e\u7d76\u5bfe\u6642\u523b\u3067\u6bd4\u8f03\u3057\u3001\u8868\u793a\u306fAsia\/Tokyo\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53b3\u5bc6\u306a15\u5206\u524d\u306e\u914d\u4fe1\u3084\u3001\u505c\u6b62\u4e2d\u306b\u958b\u59cb\u3057\u305f\u4e88\u5b9a\u306e\u5f8c\u8ffd\u3044\u901a\u77e5\u306f\u4fdd\u8a3c\u3057\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9001\u4fe1\u95a2\u6570\u306fsendCalendarToChatwork\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u73fe\u884c\u306e\u6295\u7a3fAPI\u3067self_unread\u30921\u306b\u3059\u308b\u305f\u3081\u3001\u6295\u7a3f\u5f8c\u306b\u672a\u8aad\u5316\u306e\u5225API\u3092\u7e70\u308a\u8fd4\u3057\u547c\u3076\u51e6\u7406\u306f\u4f7f\u3044\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">self_unread\u306f\u81ea\u5206\u304b\u3089\u898b\u305f\u672a\u8aad\u306e\u6307\u5b9a\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u76f8\u624b\u306e\u901a\u77e5\u8a2d\u5b9a\u3001\u901a\u77e5\u97f3\u3001\u7aef\u672b\u3078\u306e\u30d7\u30c3\u30b7\u30e5\u901a\u77e5\u306f\u5225\u306b\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u73fe\u5728\u306e\u6295\u7a3f\u4ed5\u69d8\u306f<a href=\"https:\/\/developer.chatwork.com\/reference\/post-rooms-room_id-messages\">Chatwork\u306e\u516c\u5f0f\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9<\/a>\u3001\u4e88\u5b9a\u306e\u53d6\u5f97\u306f<a href=\"https:\/\/developers.google.com\/apps-script\/reference\/calendar\/calendar\">Calendar\u306e\u4ed5\u69d8<\/a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u9001\u4fe1\u3092\u6709\u52b9\u306b\u3059\u308b\u524d\u306e\u78ba\u8a8d\u3068\u6b62\u3081\u65b9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u9001\u4fe1\u5148\u3092\u7ba1\u7406\u3059\u308b\u672c\u4eba\u306e\u8a31\u53ef\u3092\u5f97\u3066\u3001\u7df4\u7fd2\u7528\u306e\u81ea\u5206\u5b9b\u3066\u306b\u9001\u308b\u5185\u5bb9\u3068\u9001\u4fe1\u5148\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089\u3001\u30b9\u30af\u30ea\u30d7\u30c8\u30d7\u30ed\u30d1\u30c6\u30a3\u306eSEND_ENABLED\u3092true\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30c7\u30e2\u3084\u30d7\u30ec\u30d3\u30e5\u30fc\u306e\u95a2\u6570\u306b\u9001\u4fe1\u30c8\u30ea\u30ac\u30fc\u3092\u4ed8\u3051\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9001\u4fe1\u3059\u308b\u95a2\u6570\u3092\u4e00\u5ea6\u624b\u52d5\u3067\u8a66\u3057\u3001\u6295\u7a3f\u5148\u30fb\u5185\u5bb9\u30fb\u4fdd\u5b58\u72b6\u614b\u3092\u7167\u5408\u3057\u3066\u304b\u3089\u3001\u5fc5\u8981\u306a\u6642\u9593\u4e3b\u5c0e\u30c8\u30ea\u30ac\u30fc\u30921\u3064\u3060\u3051\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u65e7\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3084\u5225\u306e\u30c8\u30ea\u30ac\u30fc\u304c\u540c\u6642\u306b\u9001\u308b\u3068\u3001\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30ed\u30c3\u30af\u3060\u3051\u3067\u306f\u4e8c\u91cd\u6295\u7a3f\u3092\u9632\u3052\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u4fe1\u524d\u306bsending\u3001\u6210\u529f\u5fdc\u7b54\u5f8c\u306bdone\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u4fe1\u3084\u8a18\u9332\u306b\u5931\u6557\u3057\u305f\u5834\u5408\u306funknown\u306a\u3069\u306e\u72b6\u614b\u3092\u6b8b\u3057\u3066\u6b62\u307e\u308a\u3001\u81ea\u52d5\u3067\u518d\u9001\u3057\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7d50\u679c\u304c\u4e0d\u660e\u306a\u5834\u5408\u306fSEND_ENABLED\u3092false\u306b\u3057\u3001\u30c8\u30ea\u30ac\u30fc\u3082\u505c\u6b62\u3057\u3066\u3001\u6295\u7a3f\u5148\u306b\u540c\u3058\u5185\u5bb9\u304c\u5c4a\u3044\u3066\u3044\u306a\u3044\u304b\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9001\u4fe1\u304c\u78ba\u8a8d\u3067\u304d\u305f\u8a18\u9332\u306fdone\u3078\u6574\u3048\u3001\u672a\u9001\u4fe1\u3092\u78ba\u8a8d\u3067\u304d\u305f\u5834\u5408\u3060\u3051\u518d\u5b9f\u884c\u306e\u6e96\u5099\u3092\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9001\u4fe1\u6e08\u307f\u306e\u8a18\u9332\u3092\u6d88\u3059\u3068\u540c\u3058\u5bfe\u8c61\u3092\u518d\u9001\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9577\u671f\u904b\u7528\u3067\u306f\u8a18\u9332\u5bb9\u91cf\u3068\u6574\u7406\u65b9\u6cd5\u3092\u6c7a\u3081\u3001\u65e7\u30b3\u30fc\u30c9\u30fb\u8a2d\u5b9a\u3092\u63a7\u3048\u3066\u304b\u3089\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u623b\u3059\u969b\u306f\u65b0\u3057\u3044\u30c8\u30ea\u30ac\u30fc\u3092\u6b62\u3081\u3001\u4fdd\u5b58\u3057\u305f\u30b3\u30fc\u30c9\u3068\u8a2d\u5b9a\u3078\u623b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7df4\u7fd2\u30b3\u30fc\u30c9\u306e\u691c\u8a3c\u7bc4\u56f2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">2026\u5e7410\u67082\u65e5\u306b\u3001Node.js\u3067Google Apps Script\u30fbHTTP\u5fdc\u7b54\u30fb\u30b7\u30fc\u30c8\u30fb\u30ed\u30c3\u30af\u30fb\u4fdd\u5b58\u72b6\u614b\u3092\u6a21\u3057\u305f55\u30b1\u30fc\u30b9\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ZIP\u3092\u65b0\u3057\u3044\u30d5\u30a9\u30eb\u30c0\u30fc\u3078\u5c55\u958b\u3057\u3001node test_integration.cjs\u3067\u3082\u540c\u3058\u7d50\u679c\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9f\u969b\u306eGoogle\u8a8d\u53ef\u3001API\u3078\u306e\u6295\u7a3f\u3001\u30b7\u30fc\u30c8\u66f8\u304d\u8fbc\u307f\u3001\u6642\u9593\u4e3b\u5c0e\u30c8\u30ea\u30ac\u30fc\u3001\u53d7\u4fe1\u5074\u306e\u901a\u77e5\u97f3\u306f\u672a\u691c\u8a3c\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30ed\u30fc\u30ab\u30eb\u3067\u306e\u6210\u529f\u3092\u3001\u5b9f\u30b5\u30fc\u30d3\u30b9\u3067\u306e\u914d\u4fe1\u6210\u529f\u3068\u6271\u308f\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u95a2\u9023\u8a18\u4e8b<\/h2>\n\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -external -noimg\" data-type=\"type3\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">\u3042\u308f\u305b\u3066\u8aad\u307f\u305f\u3044<\/span>\n\t\t\t\t\t\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/dev.classmethod.jp\/etc\/notify-google-calendar-to-Chatwork\/\" target=\"_blank\" rel=\"noopener noreferrer\">404 | DevelopersIO<\/a>\n\t\t\t\t\t\t<span class=\"p-blogCard__excerpt\"><\/span>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -external\" data-type=\"type3\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">Qiita<\/span>\n\t\t\t\t\t<div class=\"p-blogCard__thumb c-postThumb\"><figure class=\"c-postThumb__figure\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/qiita-user-contents.imgix.net\/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.1.1%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTI3NzYyJTJGcHJvZmlsZS1pbWFnZXMlMkYxNDc5MzYzMzQxP2l4bGliPXJiLTQuMS4xJmFyPTElM0ExJmZpdD1jcm9wJm1hc2s9ZWxsaXBzZSZiZz1GRkZGRkYmZm09cG5nMzImcz1lMTZjODJiODRlNmM5MjhiZmQxY2VmZTFlNDJmM2I3MA%26blend-x%3D120%26blend-y%3D462%26blend-w%3D90%26blend-h%3D90%26blend-mode%3Dnormal%26mark64%3DaHR0cHM6Ly9xaWl0YS1vcmdhbml6YXRpb24taW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1vcmdhbml6YXRpb24taW1hZ2UlMkZhNTJjMjY3Zjg1NzVlOGRmZWQzMThmZDQ5ODQ0NzY3ZDg0M2I5N2JjJTJGb3JpZ2luYWwuanBnJTNGMTQ5MDc1NzI1Nj9peGxpYj1yYi00LjEuMSZ3PTQ0Jmg9NDQmZml0PWNyb3AmbWFzaz1jb3JuZXJzJmNvcm5lci1yYWRpdXM9OCZiZz1GRkZGRkYmYm9yZGVyPTIlMkNGRkZGRkYmZm09cG5nMzImcz03NGY5N2Q0Yzk2NTQwNTJkZTUxZjFjODQ0MzQ1MzY5ZQ%26mark-x%3D186%26mark-y%3D515%26mark-w%3D40%26mark-h%3D40%26s%3Db15803818ec2245635e1acca30e75ab4?ixlib=rb-4.1.1&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjEuMSZ3PTk2MCZoPTMyNCZ0eHQ9JUUzJTgzJTgxJUUzJTgzJUEzJUUzJTgzJTgzJUUzJTgzJTg4JUUzJTgzJUFGJUUzJTgzJUJDJUUzJTgyJUFGQVBJJUUzJTgxJUFFJUU4JTg3JUFBJUU1JThCJTk1JUU2JThBJTk1JUU3JUE4JUJGJUUzJTgxJUFCJUU2JTlDJUFBJUU4JUFBJUFEJUUzJTgyJTkyJUU0JUJCJTk4JUUzJTgxJTkxJUUzJTgyJThCJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9ZGE4MDc2MTQxZDM2MTk0ZDM3Mzc1M2ZkNzdhZWFkMDc&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjEuMSZ3PTgzOCZoPTU4JnR4dD0lNDBuaW5vbWl5dCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPWI0ZTk2MDdmNmFmZjVkZjIwOGVlMjI3YjJiMTgyZDQx&#038;blend-x=242&#038;blend-y=454&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;txt64=5qCq5byP5Lya56S-TElGVUxM&#038;txt-x=242&#038;txt-y=539&#038;txt-width=838&#038;txt-clip=end%2Cellipsis&#038;txt-color=%231E2121&#038;txt-font=Hiragino%20Sans%20W6&#038;txt-size=28&#038;s=9f853ce357932c7939ccf190c4be01f4\" alt=\"\" class=\"c-postThumb__img u-obf-cover\" width=\"320\" height=\"180\"><\/figure><\/div>\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/qiita.com\/ninomiyt\/items\/71e8beb54b43aa9cc92d\" target=\"_blank\" rel=\"noopener noreferrer\">\u30c1\u30e3\u30c3\u30c8\u30ef\u30fc\u30afAPI\u306e\u81ea\u52d5\u6295\u7a3f\u306b\u672a\u8aad\u3092\u4ed8\u3051\u308b &#8211; Qiita<\/a>\n\t\t\t\t\t\t<span class=\"p-blogCard__excerpt\">\u6700\u8fd1\u3001\u30c1\u30e3\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u4ed5\u69d8\u304c\u5909\u308f\u3063\u305f\u3089\u3057\u304f\u3001\u300c\u30c1\u30e3\u30c3\u30c8\u30ef\u30fc\u30afAPI\u7d4c\u7531\u3067\u6295\u7a3f\u3057\u305f\u6295\u7a3f\u306b\u672a\u8aad\u304c\u3064\u304b\u306a\u304f\u306a\u308b\u300d\u3068\u3044\u3046\u5909\u66f4\u304c\u3042\u308a\u307e\u3057\u305f\u3002 \u3053\u306e\u5909\u66f4\u306b\u306f\u6b63\u76f4\u3061\u3087\u3063\u3068\u6238\u60d1\u3063\u3066&#8230;<\/span>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -internal\" data-type=\"type1\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">\u3042\u308f\u305b\u3066\u8aad\u307f\u305f\u3044<\/span>\n\t\t\t\t\t<div class=\"p-blogCard__thumb c-postThumb\"><figure class=\"c-postThumb__figure\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cg-method.com\/work-tools\/wp-content\/uploads\/2026\/09\/work-tools-matome-3-300x169.jpg\" alt=\"\" class=\"c-postThumb__img u-obf-cover\" width=\"320\" height=\"180\"><\/figure><\/div>\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/cg-method.com\/work-tools\/work-tools-matome\/\">PC\u4f5c\u696d\u306e\u52b9\u7387\u5316\u307e\u3068\u3081\uff5c\u5b66\u5272\u30fb\u8a2d\u5b9a\u30fb\u30c8\u30e9\u30d6\u30eb\u5bfe\u51e6<\/a>\n\t\t\t\t\t\t<span class=\"p-blogCard__excerpt\">Windows\u3084\u5468\u8fba\u30c4\u30fc\u30eb\u306e\u6d3b\u7528\u6cd5\u30fb\u30c8\u30e9\u30d6\u30eb\u5bfe\u51e6\u6cd5\u3092\u76ee\u7684\u5225\u306b\u307e\u3068\u3081\u307e\u3057\u305f\u3002 \u8a2d\u5b9a\u3067\u3064\u307e\u305a\u3044\u305f\u5834\u9762\u3084\u4f5c\u696d\u52b9\u7387\u3092\u4e0a\u3052\u305f\u3044\u3068\u304d\u306e\u53c2\u7167\u7528\u306b\u5206\u985e\u3057\u3066\u3044\u307e\u3059\u3002 \u76ee\u7684\u304b\u3089\u8a18\u4e8b\u3092\u9078\u3076&#8230;<\/span>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -internal\" data-type=\"type1\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">\u3042\u308f\u305b\u3066\u8aad\u307f\u305f\u3044<\/span>\n\t\t\t\t\t<div class=\"p-blogCard__thumb c-postThumb\"><figure class=\"c-postThumb__figure\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cg-method.com\/work-tools\/wp-content\/uploads\/2019\/06\/chatwork-get-room-members-300x169.jpg\" alt=\"\" class=\"c-postThumb__img u-obf-cover\" width=\"320\" height=\"180\"><\/figure><\/div>\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/cg-method.com\/work-tools\/chatwork-get-room-members\/\">Chatwork\u2502\u7279\u5b9a\u306e\u30b0\u30eb\u30fc\u30d7\u306b\u6240\u5c5e\u3057\u3066\u3044\u308b\u30e1\u30f3\u30d0\u30fc\u540d\u524d\u3068ID\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5<\/a>\n\t\t\t\t\t\t<span class=\"p-blogCard__excerpt\">Chatwork\u306e\u30e1\u30f3\u30d0\u30fc\u4e00\u89a7\u306f\u3001\u53c2\u7167\u6a29\u9650\u306e\u3042\u308b\u30eb\u30fc\u30e0\u304b\u3089API\u3067\u53d6\u5f97\u3067\u304d\u307e\u3059\u3002 \u6539\u8a02\u7248\u3067\u306f\u3001\u73fe\u884c\u306eApps Script\u3067\u52d5\u304b\u306a\u3044for each\u69cb\u6587\u3092\u7f6e\u304d\u63db\u3048\u3001\u53d6\u5f97\u306b\u6210\u529f\u3057\u3066\u304b\u3089\u65b0\u3057\u3044&#8230;<\/span>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -internal\" data-type=\"type1\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">\u3042\u308f\u305b\u3066\u8aad\u307f\u305f\u3044<\/span>\n\t\t\t\t\t<div class=\"p-blogCard__thumb c-postThumb\"><figure class=\"c-postThumb__figure\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cg-method.com\/work-tools\/wp-content\/uploads\/2019\/08\/gas-300x300.png\" alt=\"\" class=\"c-postThumb__img u-obf-cover\" width=\"320\" height=\"180\"><\/figure><\/div>\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/cg-method.com\/work-tools\/slack-gas-scraping\/\">Slack\u2502\u682a\u4fa1\u3092\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3057\u3066\u6295\u7a3f\u3059\u308b\u65b9\u6cd5 \u2502GAS<\/a>\n\t\t\t\t\t\t<span class=\"p-blogCard__excerpt\">HTML\u304b\u3089\u5024\u3092\u53d6\u308a\u51fa\u3057\u3066Slack\u3078\u9001\u308b\u51e6\u7406\u3092\u3001\u67b6\u7a7a\u306e\u682a\u4fa1\u30c7\u30fc\u30bf\u3067\u7df4\u7fd2\u3057\u307e\u3059\u3002 example.com\u306b\u90fd\u5408\u306e\u3088\u3044\u682a\u4fa1\u30da\u30fc\u30b8\u304c\u3042\u308b\u3068\u4eee\u5b9a\u3059\u308b\u30b3\u30fc\u30c9\u3092\u7f6e\u304d\u63db\u3048\u3001\u8a18\u4e8b\u5185\u306e\u540c\u3058HTML\u304b&#8230;<\/span>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -internal\" data-type=\"type1\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">\u3042\u308f\u305b\u3066\u8aad\u307f\u305f\u3044<\/span>\n\t\t\t\t\t<div class=\"p-blogCard__thumb c-postThumb\"><figure class=\"c-postThumb__figure\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cg-method.com\/work-tools\/wp-content\/uploads\/2020\/10\/18445_google-calendar-line-notify-300x169.jpg\" alt=\"\" class=\"c-postThumb__img u-obf-cover\" width=\"320\" height=\"180\"><\/figure><\/div>\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/cg-method.com\/work-tools\/google-calendar-line-notify\/\">Google\u30ab\u30ec\u30f3\u30c0\u30fc\u2502\u4e88\u5b9a\u304c\u59cb\u307e\u308b\u76f4\u524d\u306bLine\u3078\u901a\u77e5\u3092\u9001\u308b\u65b9\u6cd5<\/a>\n\t\t\t\t\t\t<span class=\"p-blogCard__excerpt\">LINE Notify\u306f2025\u5e743\u670831\u65e5\u306b\u7d42\u4e86\u3057\u3001\u30c8\u30fc\u30af\u30f3\u306e\u65b0\u898f\u767a\u884c\u3068\u65e7API\u306e\u901a\u77e5\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093\u3002 \u65e7LINE Notify\u306e\u8a2d\u5b9a\u3092\u3084\u308a\u76f4\u3057\u3066\u3082\u5fa9\u65e7\u3057\u306a\u3044\u305f\u3081\u3001\u73fe\u5728\u306e\u53d7\u3051\u53d6\u308a\u65b9\u3092\u9078\u3073&#8230;<\/span>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -internal\" data-type=\"type1\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">\u3042\u308f\u305b\u3066\u8aad\u307f\u305f\u3044<\/span>\n\t\t\t\t\t<div class=\"p-blogCard__thumb c-postThumb\"><figure class=\"c-postThumb__figure\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cg-method.com\/work-tools\/wp-content\/uploads\/2020\/02\/slack-messages-to-chatwork-300x169.jpg\" alt=\"\" class=\"c-postThumb__img u-obf-cover\" width=\"320\" height=\"180\"><\/figure><\/div>\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/cg-method.com\/work-tools\/slack-messages-to-chatwork\/\">Chatwork\u2502Slack\u3078\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8ee2\u9001\u3059\u308b\u65b9\u6cd5<\/a>\n\t\t\t\t\t\t<span class=\"p-blogCard__excerpt\">Chatwork\u3067\u81ea\u5206\u5b9b\u3066\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3060\u3051\u3092\u9078\u3073\u3001Slack\u3078\u8ee2\u9001\u3059\u308b\u4f8b\u3067\u3059\u3002 \u65e7\u30b3\u30fc\u30c9\u306f1\u4ef6\u304c\u6761\u4ef6\u306b\u5408\u3046\u3068\u30eb\u30fc\u30e0\u5185\u306e\u5168\u4ef6\u3092\u7e70\u308a\u8fd4\u3057\u6295\u7a3f\u3057\u3066\u3044\u305f\u305f\u3081\u3001\u6539\u8a02\u7248\u306fTo\u8a18\u6cd5\u3067\u5bfe\u8c61\u3092&#8230;<\/span>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u4e88\u5b9a\u3092Chatwork\u3078\u901a\u77e5\u3059\u308b\u4f8b\u3067\u3059\u3002 \u6539\u8a02\u7248\u306f\u4e8c\u91cd\u306e\u6295\u7a3f\u547c\u3073\u51fa\u3057\u3068\u58ca\u308c\u305f\u69cb\u6587\u3092\u9664\u304d\u3001\u4e88\u5b9aID\u3068\u958b\u59cb\u6642\u523b\u3092\u7d44\u306b\u3057\u3066\u3001\u540c\u3058\u9001\u4fe1\u5148\u3078\u51e6\u7406\u6e08\u307f\u306e\u4e88\u5b9a\u3092\u518d\u6295\u7a3f\u3057\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3059\u3002 \u65e5\u4ed8\u3092\u307e\u305f\u3050\u4e88\u5b9a\u3067\u901a\u77e5 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":667,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":"","ssp_meta_description":"Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u76f4\u524d\u4e88\u5b9a\u3092Chatwork\u3078\u901a\u77e5\u3059\u308bGAS\u30b3\u30fc\u30c9\u3092\u7d39\u4ecb\u3002\u30de\u30a4\u30c1\u30e3\u30c3\u30c8\u5727\u8feb\u3092\u9632\u3050\u5c02\u7528\u30b0\u30eb\u30fc\u30d7\u3078\u306e\u6295\u7a3f\u3084To\u8a2d\u5b9a\u3001API\u4ed5\u69d8\u306b\u3088\u308b\u65e2\u8aad\u5316\u5bfe\u7b56\u3068\u3057\u30666\u79d2\u3054\u3068\u306b\u30ea\u30c8\u30e9\u30a4\u3059\u308b\u672a\u8aad\u5316\u51e6\u7406\u306a\u3069\u5b9f\u969b\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u4f8b\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002","ssp_meta_title":"Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u4e88\u5b9a\u3092Chatwork\u3078\u901a\u77e5\u3059\u308b\u65b9\u6cd5","ssp_meta_robots":"","ssp_meta_canonical":"","ssp_meta_image":"","ssp_meta_keyword":"","book_review_data":"","footnotes":""},"categories":[24,20],"tags":[],"class_list":["post-666","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chatwork","category-work"],"_links":{"self":[{"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/posts\/666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/comments?post=666"}],"version-history":[{"count":6,"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/posts\/666\/revisions"}],"predecessor-version":[{"id":23851,"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/posts\/666\/revisions\/23851"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/media\/667"}],"wp:attachment":[{"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/media?parent=666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/categories?post=666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cg-method.com\/work-tools\/wp-json\/wp\/v2\/tags?post=666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}