{"id":3163,"date":"2021-03-31T20:38:22","date_gmt":"2021-03-31T11:38:22","guid":{"rendered":"http:\/\/matoken.org\/blog\/?p=3163"},"modified":"2021-04-01T20:32:06","modified_gmt":"2021-04-01T11:32:06","slug":"post-your-calendar-to-discord-with-webhooks","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2021\/03\/31\/post-your-calendar-to-discord-with-webhooks\/","title":{"rendered":"\u30ab\u30ec\u30f3\u30c0\u30fc\u3092Webhooks\u3067Discord\u306b\u6295\u7a3f"},"content":{"rendered":"<div class=\"paragraph\">\n<p>\u4ee5\u4e0b\u306e\u8a18\u4e8b\u3067DavCal\u3084Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u95b2\u89a7\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/matoken.org\/blog\/2021\/03\/31\/output-the-calendar-davcal-to-the-command-line\/\">\u30ab\u30ec\u30f3\u30c0\u30fc\u306eDavCal\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u306b\u51fa\u529b\u3057\u305f\u3044 \u2013 matoken\u2019s meme<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305b\u3063\u304b\u304f\u306a\u306e\u3067Discord\u306b\u3082\u6bce\u671d\u305d\u306e\u65e5\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u6295\u7a3f\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Discord\u306fWebhooks\u3092\u4f7f\u3063\u3066\u304b\u3093\u305f\u3093\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6295\u7a3f\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/support.discord.com\/hc\/ja\/articles\/228383668-%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB-Webhooks%E3%81%B8%E3%81%AE%E5%BA%8F%E7%AB%A0\">\u30bf\u30a4\u30c8\u30eb: Webhooks\u3078\u306e\u5e8f\u7ae0 \u2013 Discord<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6295\u7a3f\u3057\u305f\u3044\u30c1\u30e3\u30f3\u30cd\u30eb\u306e&#x2699;\u30a2\u30a4\u30b3\u30f3\u300c\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u7de8\u96c6\u300d\u304b\u3089\u300c\u9023\u643a\u30b5\u30fc\u30d3\u30b9\u300d\u2192\u300c\u30a6\u30a7\u30d6\u30d5\u30c3\u30af\u300d\u304b\u3089\u64cd\u4f5c\u3067\u304d\u307e\u3059\uff0e<br \/>\n\u65b0\u3057\u3044\u30a6\u30a7\u30d6\u30d5\u30c3\u30af\u3092\u4f5c\u6210\u3057\uff0c\u6295\u7a3f\u30c1\u30e3\u30f3\u30cd\u30eb\u3092\u78ba\u8a8d\u3057\u3066\u300c\u30a6\u30a7\u30d6\u30d5\u30c3\u30afURL\u3092\u30b3\u30d4\u30fc\u300d\u3067Webhooks URL\u3092\u5165\u624b\u3057\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Webhooks URL\u306f\u3053\u3093\u306a\u611f\u3058\u306e\u3082\u306e\u3067\u3059\uff0e<br \/>\n<code><a href=\"https:\/\/ptb.discord.com\/api\/webhooks\/826777625053495306\/QZoG2LLZOFlsKO_Auf1IQcXHVFozlgU37EGO9bhQKAifzZ0VAkyIYuQjRSzuOvC7U1gR\" class=\"bare\">https:\/\/ptb.discord.com\/api\/webhooks\/826777625053495306\/QZoG2LLZOFlsKO_Auf1IQcXHVFozlgU37EGO9bhQKAifzZ0VAkyIYuQjRSzuOvC7U1gR<\/a><\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>curl\u3067\u6295\u7a3f\u30c6\u30b9\u30c8\u3092\u3057\u3066\u307f\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-shell\" data-lang=\"shell\">$ curl -X POST -H \"Content-Type: application\/json\" \\\n  -d '{\"username\": \"\u30dc\u30c3\u30c8\", \"content\": \"\u3053\u3093\u306b\u3061\u306f&#x1f916;\"}' \\\n  'https:\/\/ptb.discord.com\/api\/webhooks\/826777625053495306\/QZoG2LLZOFlsKO_Auf1IQcXHVFozlgU37EGO9bhQKAifzZ0VAkyIYuQjRSzuOvC7U1gR'<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"data:image\/jpg;base64,\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wEEEAAUABQAFAAUABUAFAAXABkAGQAXAB8AIgAeACIAHwAuACsAJwAnACsALgBGADIANgAyADYAMgBGAGoAQgBOAEIAQgBOAEIAagBeAHIAXQBWAF0AcgBeAKkAhQB2AHYAhQCpAMMApACbAKQAwwDsANMA0wDsASoBGwEqAYUBhQILEQAUABQAFAAUABUAFAAXABkAGQAXAB8AIgAeACIAHwAuACsAJwAnACsALgBGADIANgAyADYAMgBGAGoAQgBOAEIAQgBOAEIAagBeAHIAXQBWAF0AcgBeAKkAhQB2AHYAhQCpAMMApACbAKQAwwDsANMA0wDsASoBGwEqAYUBhQIL\/8IAEQgAPgDmAwEiAAIRAQMRAf\/EABoAAQACAwEAAAAAAAAAAAAAAAACAwEEBQb\/2gAIAQEAAAAA4QAAAAJ9C6nnwb0tSNuvudSOI82hnGcZjh1fTX0+Y5Tq68JW0WdXCHKonmE8Zrg9N6ScvL+YABPY1cAHofR1Xec86vjfqbVe3VGzp36HFALupOHLpbdcrVGLbJb\/AEuDywBmUAAF+YVAAAAAAf\/EABgBAQEBAQEAAAAAAAAAAAAAAAACAwEE\/9oACAECEAAAAK3zjnWtTkG86ebhvUZBp6I83A9OHAAKkP\/EABcBAQEBAQAAAAAAAAAAAAAAAAABAwL\/2gAIAQMQAAAAgAAsAAAGWlAA5tH\/xAAzEAACAgECAwYEBQQDAAAAAAABAgMRAAQSISJBBRATMVFhFDCBkRUyQlLBI0BQoVNxgv\/aAAgBAQABPwD++RGdgqjE0ka\/m5jngxfsXH0kbfl5TjoyMVYd+n0kUrwg6mIb2W15r4\/THg00Sy3MjsCQoUtf+xiQyybNq3ubaPc4EYoZK5QwUn3OJCraaeXjaMgH\/q+7SIjlywBqsTRo6sdsfAX+nG00e4hY1IHsMTTRs6L4ajd7YYEU00QB91zVIqScoqxgUthUj3Hrmxvb7jNpvb1zY11WbTdVxzY1gVhBU0e\/TR7IwerZB2RuQFzxIz8Eh\/5XyXsjlOw8wGaqLfGT1Xv09PJo0iI2ROruWIXmJ44Zo2j1EbH9e+M++adpzyR7eDiSyQKK+5yd0WMRKwYly7keV+gzSyyQ6PVPG5U74v5yTU+KhDxRl+jgbT\/rNERbj\/rBLyEVx2hR97wSc5Y2LN8vDBJUivXlVDN7FdpY16ZrCDKPZcVq9foaxzwq2vqLvGHN+VenXGG6VhYHMcPVbA4CuIw8TQK9BeGhy2K2kA3j+Sj0HfooxJqYUPleazUnSwhwl2az4w\/AfE7ONeWaHVnVxFytEGs18Qj1MyDyv5qIXahX1NDDpCBYmhPteEEH5XZuqWN4pSLrgcn1mnMW8PHInWM5+L6bw9ngNVVWafXacRh98cSdIx552nqlkeSVRQIod8bbELGBXF1bX\/BGSSK4AEKJ7rf8k5pYWZZpAt0u0X6tjKVYqRRBojHWotIAlkgmvXmrJJEIKjToh9QWsfc5o0RklbwGYqlXu6tk0aRpfw7C+AbxAwvJBEg025TRjtqNE2TknwvwqFYnBLuAdw9B7ZFpoooSdhkoA0o4m8eCJPFPhs22uVQL452jpo0RnHAqQPlQzGJvUHzGJIkgtT3PIkYtjk0xlb0A8h3hoZII42cxlCelg3jpCq8s24+gUjJJR4EUSHhxZ\/djkk0JEkoNySIBVeR6nE1CINMaJKB1P1xxptp2PKW6AqAMjCsGDTbB7gkH7YzRRwvGjly5FmqArEniB05J4rEyE1dGzRyfURvCsTsZWFkP5UTnZrR+F\/WlZa8srRDiJ3GdpkbwEYlPmeJJ+9vv88aiQADhnxMvqMeZ3FH\/AA3\/xAAiEQACAgICAgIDAAAAAAAAAAABAgMRABIgMRNSBCEwQaH\/2gAIAQIBAT8A7wfHc9kDHjZO+KxFlDbAZ4D7DHhKLdg8oKGzH9DN5iAb+iayMs28b8Um1ULrdZ5x6f3JJww11q+UbBSQeiKOLBHXZOMEi2INsecYdYwCzE6D7C4wYO9m7PKyPwbv7HCSezx\/\/8QAIhEBAAECBAcAAAAAAAAAAAAAAQIAEQMSEzEgISIwUFFS\/9oACAEDAQE\/APDssJmOmcpq9W56qKMI2Ld7JD5KANuH\/9k=\" alt=\"Discord bot\"\/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u308c\u3067\u6295\u7a3f\u3067\u304d\u307e\u3057\u305f :)<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Discord\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6295\u7a3f\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u306e\u3067\uff0c\u4ee5\u4e0b\u306e\u30a8\u30f3\u30c8\u30ea\u3067\u66f8\u3044\u305f khal \u30b3\u30de\u30f3\u30c9\u3067\u4eca\u65e51\u65e5\u5206\u306e\u4e88\u5b9a\u30bf\u30a4\u30c8\u30eb\u3092\u5165\u624b\u3057\u3066Discord\u306b\u6295\u7a3f\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>* <a href=\"https:\/\/matoken.org\/blog\/2021\/03\/31\/output-the-calendar-davcal-to-the-command-line\/\">\u30ab\u30ec\u30f3\u30c0\u30fc\u306eDavCal\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u306b\u51fa\u529b\u3057\u305f\u3044 \u2013 matoken\u2019s meme<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4ee5\u4e0b\u306e\u9069\u5f53\u306aScript\u3092\u7528\u610f\u3057\u307e\u3057\u305f\uff0e<\/p>\n<blockquote><p>\n2021-04-01 \u7de8\u96c6)<br \/>\n\u30a4\u30d9\u30f3\u30c8\u304c\u306a\u3044\u65e5\u306b\u3082\u6295\u7a3f\u3057\u3066\u3057\u307e\u3063\u3066\u3044\u305f\u306e\u3092\u4fee\u6b63&amp;Bashism\u3060\u3063\u305f\u306e\u3092sh\u3067\u52d5\u304f\u3088\u3046\u4fee\u6b63<\/p><\/blockquote>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-bash\" data-lang=\"bash\">#!\/bin\/sh\n# khal\u30b3\u30de\u30f3\u30c9\u3067\u4eca\u65e5\u306e\u4e88\u5b9a\u3092\u5165\u624b\u3057\u3066Discord\u306bpost\u3059\u308b\n# https:\/\/matoken.org\/blog\/2021\/03\/31\/post-your-calendar-to-discord-with-webhooks\/\n\n# Discord\u306eWebhook URL\n# \u4ee5\u4e0b\u306eURL\u3092\u53c2\u8003\u306b\u5165\u624b\u3057\u3066\u8a2d\u5b9a\u3059\u308b\n# https:\/\/support.discord.com\/hc\/ja\/articles\/228383668-%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB-Webhooks%E3%81%B8%E3%81%AE%E5%BA%8F%E7%AB%A0\nDISCORD_WEBHOOK='https:\/\/ptb.discord.com\/api\/webhooks\/\u2026\u2026\u2026\u2026'\n\n# khal\n#   list -&gt; \u4e00\u89a7\u8868\u793a\n#   --format \"{title}\" -&gt; \u30bf\u30a4\u30c8\u30eb\u3060\u3051\u8868\u793a\n#   today -&gt; \u4eca\u65e5\u304b\u3089\n#   today -&gt; \u4eca\u65e5\u307e\u3067\n# sed -&gt; json\u306e\u6539\u884c\u5f62\u5f0f\u306b\u5909\u63db\nCAL=$(khal list --format \"{title}\" today today | sed -z -e \"s\/\\n\/\\\\\\\\\\\\\\\\n\/g\")\n\n# \u30a4\u30d9\u30f3\u30c8\u306e\u306a\u3044\u65e5\u306f\u6295\u7a3f\u305b\u305a\u7d42\u4e86\nif [ \"${CAL}\" = 'No events\\\\n' ]\nthen\n  echo \"${CAL}\"\n  exit\nfi\n\nMSG=$(printf '{\"username\": \"\u4eca\u65e5\u306e\u30a4\u30d9\u30f3\u30c8&#x1f4c5;\", \"content\": \"%s\"}\\n' \"${CAL}\")\necho \"$MSG\"\n\n# Discord WebHock \u3067Kagolug \u306e#random \u3078post\ncurl -X POST -H \"Content-Type: application\/json\" \\\n\t-d \"${MSG}\" \\\n\t\"${DISCORD_WEBHOOK}\"<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u8a66\u3057\u306b\u5b9f\u884c\u3059\u308b\u3068\u6295\u7a3f\u3055\u308c\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u624b\u52d5\u3067\u53e9\u304f\u306e\u306f\u9762\u5012\u3059\u304e\u308b\u306e\u3067\u81ea\u52d5\u5b9f\u884c\u3059\u308b\u3088\u3046\u306bcrontab\u306b\u767b\u9332\u3057\u3066\u304a\u304d\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-shell\" data-lang=\"shell\">$ crontab -l | grep calpost\n58 4 * * *      \/home\/matoken\/bin\/calpost.sh 2&gt;&amp;1 &gt; \/home\/matoken\/tmp\/cron\/calpost.sh.log<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6bce\u65e504:58\u306b\u5b9f\u884c\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">\u74b0\u5883<\/div>\n<div class=\"content\">\n<pre>$ dpkg-query -W vdirsyncer khal curl bash\nbash    5.0-4\ncurl    7.64.0-4+deb10u1\nkhal    1:0.9.10-1.1\nvdirsyncer      0.16.7-2\n$ lsb_release -dr\nDescription:    Debian GNU\/Linux 10 (buster)\nRelease:        10\n$ uname -m\nx86_64<\/pre>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u4e0b\u306e\u8a18\u4e8b\u3067DavCal\u3084Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u95b2\u89a7\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e \u30ab\u30ec\u30f3\u30c0\u30fc\u306eDavCal\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u306b\u51fa\u529b\u3057\u305f\u3044 \u2013 matoken\u2019s meme \u305b\u3063\u304b\u304f\u306a\u306e\u3067Discord\u306b\u3082\u6bce\u671d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[428,7,6],"tags":[491,469,634],"class_list":["post-3163","post","type-post","status-publish","format-standard","hentry","category-buster","category-debian-linux","category-linux","tag-calendar","tag-discord","tag-webhook"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/3163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=3163"}],"version-history":[{"count":0,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/3163\/revisions"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=3163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=3163"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=3163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}