こんにちは。
今回はNHK APIから料理番組情報を取得して、
1週間分のNHKで放送予定の料理番組情報をLINEBotで自動通知できるものを作ってみました。
お客さまが欲しいものを欲しいときに購入できるように、準備をする。
私は小売業で働いています。
小売業で勤務されている方は1度はあると思いますが・・・
テレビで紹介されたものが放送後、異常に売れて、商品が欠品し、
お客さまのご要望に応えられなかったことがあると思います。
(おまけに店長に物凄く怒られます。)
でも毎日テレビを見るわけではないので、
今日はNHK APIを使用して、料理番組情報を定期的に取得できる
LINEBotを作成しました。
本当は1週間に1回取得したいのですが、今回は練習の為5分おきに設定してます。
できたものがこちら
動画で確認したい方はこちら
https://twitter.com/nghrhtm1/status/1509175932971810818
5分おきにNHKの番組の中から、
①料理番組名、②詳細、③放送開始日程が取り出せるようになりました。
実装環境
- Node.js(version: v17.6.0)
- LINE Message API
- NHK API
- GitHub Actions
NHK APIを取得する。
- まずはこちらからNHK API取得ページを開いてください。
(https://api-portal.nhk.or.jp/doc-genre-v2-con)
↑この内容を入力して【Create Account】をクリックしてください。
ご自身のPCに登録完了のメールが届けばOKです。
そして、登録したメールアドレス、パスワードでログインしてください。
↑このようなページが出てきますので使用したいAPIをクリックしてください。
(私は【Program Genre API】を使用しました。)
↑そして、取得したい情報を選択して、【指定したパラメタで試してみる】を
クリックしてください。
(私が今回取得した内容を表示しています。)
↑そうすると、ほしい情報が取得できます。
【Request URL】の【ENTER_YUOR_KEY】を先ほど取得したのAPIに変更して
使用できるようになります。
自分の取得したAPIを確認したいときは・・・
↑右上のアカウント(メールアドレス)をクリックしてください。
↑先ほど作成した【My Apps】が表示されますので、クリックしてください。
作成したコードがこちら
実際に作成したコードはこちら
'use strict';
const line = require('@line/bot-sdk');
const axios = require('axios');
const config = {
channelSecret: '**************',
channelAccessToken: '************************'
};
const client = new line.Client(config);
const main = async () => {
let url = "https://api.nhk.or.jp/v2/pg/genre/270/g1/0205/2022-04-04.json?key=*********************"
// NHK API を取得します。。
let response = await axios.get(url);
// ターミナルに受け取った結果を出力します。
console.log("タイトル:"+response.data.list.g1[0].title);
const messages = [{
type: 'text',
text: response.data.list.g1[0].title
},
{
type: 'text',
text: response.data.list.g1[0].subtitle
},{
type: 'text',
text: response.data.list.g1[0].start_time
}];
try {
const res = await client.broadcast(messages);
console.log(res);
} catch (error) {
console.log(`エラー: ${error.statusMessage}`);
console.log(error.originalError.response.data);
}
}
main();
GitHub Actionsを使用して定期的に情報を取得する。
ここは記事を書きながら疲れてきたので、
後日、やり方を記事にします!すみません笑
てことで、接続を完了しました。笑
上司からのFB
上司に作成したものを使ってもらいました。
「料理番組なんだったら、完成された料理写真とか、レシピとかほしい!!」
とのこと。確かにそうだな・・・と。
「あと、めっちゃ同じレシピ届くけど、これしんどいねんけど!笑」
と言われてしましました笑
すぐに設定変更忘れてしまい、
今日1日は料理番組情報が5分おきに届くようになってました。
すぐ1週間おきに変更します!
「あと、1週間に1回に情報取得ではなくて、番組側が情報を公開したタイミングで
通知が来るようにすれば、発注準備もしやすいんちゃうか?」
発注数量が多い場合(100個を超える場合)は1週間前には
商品部仕入れ担当者に申請したいところ・・・
確かに・・・
まだまだ改善の余地ありです!
最後に(NHK APIは初心者にすごくオススメです!)
本当にAPI取得から設定しやすくて、使用するURLもわかりやすくて
感激しました・・・
前回のGoogleカレンダーAPIのときとは大違い!(本当に難しかったんです!)
【GoogleカレンダーAPIを使用した記事はこちら】
https://qiita.com/NagaharaHitomi/items/6f0bc022a49a21132be1
APIを初めて取得してみるよ!という方はぜひ使用してみてください。
最後まで読んでいただき、ありがとうございました。