[テンプレート] アカウンタビリティ・チャート DB
ソースコード
require "net/http"
require "uri"
require "json"
require "date"
MY_NOTION_TOKEN=ENV["TOKEN"]
DATABASE_ID=ENV["DATABASE_ID"]
TZ="+09:00"
def send_notion(title)
t = DateTime.now
s = t.strftime("%Y-%m-%d %H:%M:%S") + TZ
e = (t + Rational(30, 24 * 60)).strftime("%Y-%m-%d %H:%M:%S") + TZ
uri = URI.parse("<https://api.notion.com/v1/pages>")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request["Authorization"] = "Bearer #{MY_NOTION_TOKEN}"
request["Notion-Version"] = "2021-05-13"
request.body = JSON.dump({
"parent" => {
"database_id" => "#{DATABASE_ID}"
},
"properties" => {
# title (プロパティ名)
"title" => {
"title" => [
{
"text" => {
"content" => "#{title}"
}
}
]
},
"行動予定日" => {
"date" => {
"start" => s,
"end" => e
}
}
}
})
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
code = response.code
# print "#{title}\\t#{datetime}...#{code}\\n"
unless code == "200"
# エラーの時だけエラーを表示する
STDERR.print "Error!\\n#{response.body}\\n"
end
end
send_notion(ARGV[0])