見出し画像

「今日は何の日API」ご利用の皆さまへ、ドメイン変更+新機能追加のお知らせ【2024/5/31㊎までに変更を】

【注意】本記事は古い情報を含んでいます。「今日は何の日API」の現状は最新記事にてご確認ください。

小寒のみぎり、皆さまいかがお過ごしでしょうか。

早速表題の件でございますが、「今日は何の日API」のドメインを変更いたします。新しいドメインおよびリクエストURLは以下をご覧ください。

新ドメインはすでに開通しており、現在のドメインは2024/6/1(土)以降は使えなくなります。なので、本日より2024/5/31㊎までを移行期間とさせていただきます。ご利用中の方はお手数ですがURLの変更をお願いいたします。

「今日は何の日API」は従来「記念日API」「MD販促API」「誕生花API」の3種構成でしたが、このタイミングで新たに「偉人誕生日API」が加わり4種構成になりました。また、「記念日API」中の機能で、画像生成AI(Stable Diffusion)が生成した記念日のイメージ画像を取得する方法も、本記事でご紹介します。あまり告知できていなかったので。

基本的な使い方・考え方は変更ありません。それぞれのリクエストURLの末尾に月日(mmdd形式、例えば1月1日なら0101)を加えてリクエストすることで、同日の情報(記念日・MD・誕生花・偉人)をJSON形式で返します。WEBでのマーケティング、広報、販促にご利用いただけます。

import requests
import datetime


today = datetime.date.today()
mmdd = today.strftime('%m%d')

url = "https://api.whatistoday.cyou/v2/anniv/" + mmdd

r = requests.get(url).json()

print(r['_items'][0]['anniv1'])

#2月14日なら"バレンタインデー"
#値がないパラメータは空文字""を返します

詳細は以下の各項目をご確認ください。


記念日API

特定の日付に対応する記念日を返すAPI。
祝日・祭日などの情報は含まれません。また例えば「ボージョレ解禁日(11月の第3木曜日)」のように、第○番目の○曜日などとカウントされる記念日も含まれないことにご注意ください。特定の日付に対応する記念日のみ、最大で5つ返します。

リクエストURL

https://api.whatistoday.cyou/v2/anniv/

レスポンス サンプル

{
  "_count": 1,
  "_last": null,
  "_items": [
    {
      "anniv1": "ポッキー&プリッツの日",
      "anniv2": "介護の日",
      "anniv3": "サッカーの日",
      "anniv4": "くつしたの日",
      "anniv5": "電池の日",
      "key": "316",
      "mmdd": "1111"
    }
  ]
}

レスポンスフィールド

画像生成AIが作った記念日のイメージ画像

パラメータ「anniv1」の記念日のイメージ画像を、画像生成AI(StableDiffusion)で作成して保存しております。

https://api.whatistoday.cyou/anniv1_img/

こちらのURL(ディレクトリ)にmmdd形式のファイル名でpng画像を格納しています。例えば2月14日「バレンタインデー」の画像なら0214.pngですから、

https://api.whatistoday.cyou/anniv1_img/0214.png

こちらに格納されています。

X(Twitter)のAPIを使って画像投稿もできます。ただ少しだけコツがあって、画像をバイト列(BytesIO)に変換して投稿しなきゃいけないようです。client クラスとapiクラスの2つのインスタンスが必要なのもややこしいですね。だいぶ省略しますがこんな感じ。

import json
import datetime
import tweepy
import requests
from io import BytesIO

today = datetime.date.today()
mmdd = today.strftime('%m%d')

〜〜
省略
〜〜

fname = mmdd + ".png"
imgurl = "https://api.whatistoday.cyou/v2/anniv1_img/" + mmdd + ".png"
img = requests.get(imgurl).content
result_img = api.media_upload(filename=fname, file=BytesIO(img))
client.create_tweet(text=anniv_tweet,media_ids=[result_img.media_id])

〜〜
省略
〜〜

実行結果がこちら。


MD販促API

特定の日付に対応するMD(MerchanDising)を返すAPI。
MDカレンダーとして活用可能ですが、52週のカレンダーではないことにご注意ください。日曜や祝祭日の切れ目は明確ではありません。毎年使い回すことを想定しているので、年ごとの気候や時事の変化は考慮に入れない、ざっくりとした構成です。関東地方の比較的小規模なショッピングセンターを想定した内容です。

リクエストURL

https://api.whatistoday.cyou/v2/md/

レスポンス サンプル

{
  "_count": 1,
  "_last": null,
  "_items": [
    {
      "fashion1": "冬物(プロパー)",
      "fashion2": "",
      "food1": "冬メニュー",
      "food2": "クリスマスメニュー",
      "gift1": "クリスマスギフト",
      "gift2": "お歳暮",
      "key": "316",
      "life1": "クリスマス",
      "life2": "寒さ対策",
      "mmdd": "1111"
    }
  ]
}

レスポンスフィールド

誕生花API

特定の日付に対応する誕生花とその花言葉を返すAPI。

リクエストURL

https://api.whatistoday.cyou/v2/birthflower/

レスポンス サンプル

{
  "_count": 1,
  "_last": null,
  "_items": [
    {
      "flower": "アジアンタム",
      "key": "316",
      "lang": "天真爛漫",
      "mmdd": "1111"
    }
  ]
}

レスポンスフィールド

偉人誕生日API

特定の日付が誕生日となる、歴史上の人物の情報を返すAPIです。
江戸時代以前の日本の人物について、和暦は西暦に変換している点をご注意ください(例えば坂本龍馬なら天保6年11月15日→1836年1月3日)。ユリウス暦とグレゴリオ暦の日付統一は…諦めました。また一部例外として、日本の行事(法要など)で一般に知られている誕生日なども入れています(釈迦(4月8日)など)。

リクエストURL

https://api.whatistoday.cyou/v2/famousbirthday/

レスポンス サンプル

{
    "_count": 1,
    "_last": null,
    "_items": [
        {
            "key": "j7p2yf268p6f",
            "lifespan": "1836-1867",
            "mmdd": "0103",
            "name": "坂本龍馬",
            "profile": "幕末の志士"
        }
    ]
}

レスポンスフィールド

X(Twitter)デモアカウントの紹介と、使い方のヒント

X(Twitter)でデモアカウントを作成しております。毎日、記念日・MD・誕生花・偉人誕生日をつぶやいてます。

こんな風に、毎日の情報を配信するのが基本的な使い方ですが、例えばMD販促APIは数週間〜数ヶ月先のMDを先取りする設定にしたら、販促の準備などにお役立ちいただけると思います。

さらに応用編として、「今日は何の日API×別のAPIのかけ合わせ」なんてこともできます。「今日は何の日API」のレスポンスからリクエスト文を作って、もう1回別のAPIにリクエストをかける方法です。

例えば…
「今日は何の日API」×ネットショッピングの検索API
→関連商品を検索して商品のURLを取得。

「今日は何の日API」×チャットAIのAPI
→今日の記念日について、AIに詳細に説明してもらう。

ただし、本APIにも他のAPIにも言えることではありますが、過度なリクエストはアクセス制限やサーバダウンの原因となります。できる限り負荷をかけない範囲でのご利用をお願いいたします。

【最後に】利用者の方にお願い

サービスの安定的な運用と成長のために、応援いただければ幸いです🙏

お願い1. リンク

ご利用のアカウント・URLから本ページへのリンクをお願いいたします。直リンクでもpowered by whatistodayAPIでも、何でも結構です。

https://note.com/sooz/n/n94cc1c71ad97

お願い2. 投げ銭

以下の「気に入ったらサポート」よりお願いします。amazonのリストでも受け付ております。

https://www.amazon.co.jp/hz/wishlist/ls/2XR581SJNMC49/

「今日は何の日API」は、2022年の春に公開いたしました。放ったらかしでも数年間は運用できるよう「Heroku無料プラン+freenom無料ドメイン」という布陣で臨んだわけですが、およそ半年後の2022年秋にはHeroku無料プランが終了してお引越し。さらに2023年夏には突然freenomドメインが消滅、慌てて手持ちのドメイン(wazka.jp)にお引越し。という、2年足らずで2度のお引越しを余儀なくされてます。そして今回が3度目のお引越しになります。

何度か心が折れて「もうサービス終了しよう」と思うたびに、皆さまの暖かいごお言葉とご支援を賜り、どうにかこうにか続けることが出来ております。

皆さまにはこの場を借りて、厚く御礼申し上げます。

2024.1.18 「118番の日」に sooz

この記事が気に入ったらサポートをしてみませんか?