HTTPでPOSTするとこの番組通知を利用することができます。ヘッダーに"Access-Control-Allow-Origin: *"が付与されているのでWebページ内のJavaScript等から直接アクセスできます。
非公式番組通知
番組通知を登録する場合は https://abema.nakayuki.net/notify/add.php にPOSTします。POSTするパラメータは次のとおりです。
POSTパラメータ | 内容 | 例 |
client | 英数字でここにアクセスするプログラムの名前(拡張機能の名前等、開発者が自由に設定可) | test |
slotid | 番組ID 番組個別ページURLのslots/以降の英数字です。 | 9gjSsHawDhzGXq |
notifyminutes | 何分前に通知するかの分数(省略した場合5分になります。) | 5 |
notifyto | 通知先JSON(mailto,linenotifyToken,postUrlの内必要分を指定) | {"mailto":"mail@example.com", "linenotifyToken":"LiNEnoTiFysaMpleToKEn123456789", "postUrl":"https://hooks.slack.com/services/XXXXXXX/YYYYYYY/ZZZZZZZZZ"} |
curl -X POST -d "slotid=番組ID" -d "client=curltest" -d "notifyminutes=5" -d 'notifyto={"mailto":"メールアドレス"}' https://abema.nakayuki.net/notify/add.php?pp=1&ds=1
{"satus":"noSlot","error":"slot id not found"}
のようなJSONが返ってきます。
エラー時のstatusキーの内容 | 意味 |
error | パラメータの異常などクライアント側が原因のエラー |
servererror | サーバー側のエラー |
noSlot | 指定されたIDの番組が見つからない(1日以上経った過去の番組も見つからなくなります。) |
past | 指定されたIDの番組の通知時刻が過去((番組開始時刻-通知分数-30秒)<現在時刻) |
{ "status": "OK", "token": "et5ivq410kos0ke", "notifytime": 1497966900, "notifyto": { "mailto": "mail@example.com", "linenotifyToken": "LiNEnoTiFysaMpleToKEn123456789" }, "slotInfo": { "id": "9gjSsHawDhzGXq", "channel": "abema-news", "startAt": 1497967200, "endAt": 1497970800, "title": "AbemaNews23時/AbemaSports!", "displayProgramId": "89-22_s0_p834", "series": "89-22", "tsFlag": 0, "tsEndAt": 0, "slot": { "id": "9gjSsHawDhzGXq", "title": "AbemaNews23時/AbemaSports!", "startAt": 1497967200, "endAt": 1497970800, "programs": [ { "id": "89-22_s0_p834", "episode": { "sequence": 834 }, "credit": { "casts": [ "AbemaCaster" ], "crews": [ "テレビ朝日" ], "copyrights": [ "(C)テレビ朝日", "Abema News" ] }, "series": { "id": "89-22", "themeColor": {}, "updatedAt": 1497577939 }, "providedInfo": { "thumbImg": "thumb001", "updatedAt": 1496972412 } } ], "tableStartAt": 1497967200, "tableEndAt": 1497970800, "highlight": "最新NEWS&話題/AbemaSports!", "tableHighlight": "最新NEWS&ランキングは23:30頃~。23:40すぎ~AbemaSports!そのほか本日のJチャンネル、Abemaエンタメニュースなど", "detailHighlight": "最新NEWS&ランキングは23:30頃~。23:40すぎ~AbemaSports!そのほか本日のJチャンネル、Abemaエンタメニュースなど", "content": "最新NEWS&話題の情報をお届けする24時間ニュース。\n最新NEWS&ランキングは23:30頃~。つづいて23:40すぎ~AbemaSports!ほかに本日のJチャンネル、エンタメニュースもお送りします", "displayProgramId": "89-22_s0_p834", "mark": { "live": true }, "flags": {}, "channelId": "abema-news" } } }
通知登録を削除するには https://abema.nakayuki.net/notify/delete.php にPOSTします。POSTするパラメータは"token=削除用トークン"だけです。{"status":"OK"}
が返ってきたら成功です。
curlコマンドの例: curl -X POST -d "token=et5ivq410kos0ke" https://abema.nakayuki.net/notify/delete.php