質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1805閲覧

テレビ王国の番組表をRSSで取得したいのですが

kuroryu

総合スコア7

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/01/09 08:54

編集2020/01/09 12:39

So-netが運営している「テレビ王国」の番組表をRSSで取得したものを「IFTTT」のトリガーとして、最終的にGoogle Calendarでその日に表示して通知されるようにしたいのですが、日時が放送日ではなく、RSSを取得した日時かなにかで取り込まれてしまいます。

「テレビ王国」で「福祉」というジャンルの番組のみを表示したリストを生成しました。
https://tv.so-net.ne.jp/p/mocaya/schedulesByFilter/614633.action
そこで「RSS」というボタンからジャンプすると下記のページにリンクされます。
https://tv.so-net.ne.jp/rss/p/mocaya/schedulesByFilter/614633.action
このRSSをIFTTTを利用してGoogle Calendarに読み込み、最終的にはIFTTTを利用してTwitterで番組の数分前に通知ツイートができるようにしたいと思っています。
ところが、Google Calendarに読み込まれた時点で、放送日時ではなく、恐らく番組リストの更新日で読み込まれてしまいます。

例えば、
(2020年1月3日に以下の番組一覧を取得してRSSが更新される)
・2020年1月4日 8:00~12:00
テレビXX「vしおhじょいて」
・2020年1月5日 18:00~19:00
テレビXX「gそえりthぽいあへ」
・2020年1月9日 18:30~18:45
テレビXX「えつぉえいほいh」

というRSSがあるとします。
そうすると、Google Calendarの1月3日(番組一覧更新日)に全部の番組が読み込まれてしまうという状況です。

しかし、ためしに、Wordpressで同じRSSアドレスを読み込んで、FeedWordpressで表示した時は、
特に設定もせずに、各日時ごとに一記事が生成されました。
また、さらにカレンダー取得したものをIFTTTからTwitterに投稿した際にも日時書式の問題が生じるなど、半年ほどずっと試行錯誤しているもので少々パニック状態に陥っております…
とりあえず、まずはGoogle Calendarに放送日時ごとに表示するところまで実現したいので、お力をお貸しいただけますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2020/01/09 09:00

どのようなプログラムで取り込んだのでしょうか?
kuroryu

2020/01/09 09:05

失礼しました。 IFTTTで、テレビ王国の番組RSSフィードをトリガーとして、Google Calendarに取り込むようにしました。
退会済みユーザー

退会済みユーザー

2020/01/09 11:38

取得するRSSはなにかの検索結果としてのものでしょうか。ファイルサイズがどのくらいか、なにか適当なRSSリーダーにかけて文法エラーは発生しないかなど、生データをチェックできているでしょうか。
m.ts10806

2020/01/09 12:06

ほとんど応えになってないです。 現在のコードを提示してくださいという依頼ですよ。 でないと良し悪しはわかりませんし。 あと公的に配布され、勝手に個人利用しても良い情報なのでしょうか。
kuroryu

2020/01/09 12:10

すみません。 やはり自分にはハードルが高いようです。 申し訳ありませんが質問を打ち切らせていただきます。
m.ts10806

2020/01/09 12:14

ハードルが高いから質問して現在起きている問題に対してヒントを得たいのかなと思ったのですけど。。 たぶんRSSなど外部の仕組みを扱うって熟練者でも結構気を遣うところではあります。 「やるな」というわけではないのですが、せっかく質問したのですから何も得られてない状態で打ち切るのではなくやれるところまで進めてみてはいかがでしょう。
kuroryu

2020/01/09 12:35

ご親切にありがとうございます… 「テレビ王国」で「福祉」というジャンルの番組のみを表示したリストを生成しました。 https://tv.so-net.ne.jp/p/mocaya/schedulesByFilter/614633.action そこで「RSS」というボタンからジャンプすると下記のページにリンクされます。 https://tv.so-net.ne.jp/rss/p/mocaya/schedulesByFilter/614633.action このRSSを読み込んでGoogle Calendarに読み込み、最終的にはIFTTTを利用してTwitterで番組の数分前に通知ツイートができるようにしたいと思っています。 ところが、質問に書いたように、放送日時が上手くカレンダー側に取得できない状態です。 また、さらにカレンダー取得したものをIFTTTからTwitterに投稿した際にも日時書式の問題が生じるなど、半年ほどずっと試行錯誤しているもので少々パニック状態に陥っております… まずは、Google Calendarに、放送日時ごとに正しく表示することまでを目標としております。 プログラム未経験者のため、ご迷惑をおかけします。 足りない情報がありましたら、またご指摘いただければ幸いです。 どうぞよろしくお願い致します。
退会済みユーザー

退会済みユーザー

2020/01/09 13:06

質問内容って編集できるから、そういう大事な情報は質問本文に加筆しておいてね。
kuroryu

2020/01/09 13:08

はい!逐一質問編集しております!
guest

回答2

0

直接の回答ではないけど、RSS取得に興味を持ったので、サンプルコードを起こしてみた。

参考情報:
【PHP】外部サイトのRSS情報を取得して表示させる方法。 - ONZE
【PHP】RSSの日時データ「pubDate」と「dc:date」を取得・表示するときの注意点。 - ONZE

php

1<?php 2//$rss = simplexml_load_file('https://tv.so-net.ne.jp/rss/p/mocaya/schedulesByFilter/614633.action'); 3$rss = simplexml_load_file('C:\xampp71\htdocs\test\614633.action'); 4echo '<ul>'; 5foreach($rss->item as $item){ 6 $title = $item->title; 7 $date = date("Y年 n月 j日 H時 i分", strtotime($item->children("http://purl.org/dc/elements/1.1/")->date)); 8 $link = $item->link; 9 $description = mb_strimwidth (strip_tags($item->description), 0 , 110, "…Read More", "utf-8"); 10?> 11<li><a href="<?php echo $link; ?>" target="_blank"> 12<span class="date"><?php echo $date; ?></span> 13<span class="title"><?php echo $title; ?></span> 14<span class="text"><?php echo $description; ?></span> 15</a></li> 16<?php } echo '</ul>'; ?>

これでリスト表示はできているので、情報の参照の仕方の参考にでもしてみてください。

投稿2020/01/09 13:02

編集2020/01/09 13:03
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/09 13:08

ひとさまのサーバーに迷惑をかけないよう、テスト用にRSSをファイルに保存してテストした。 もしかすると、あまりに頻繁にRSSを取得しに行くとIPアドレス単位でブロックされたりする可能性もあるので、取得頻度は程々に、ローカルにキャッシュファイルを作るなどしておくと良いかも。
kuroryu

2020/01/09 13:25

ありがとうございます! 該当RSSの中に<dc:date>という表記があるので、RSS1.0ということですね。 ソースコードと、情報ページを参考に試してみたいと思います。
guest

0

自己解決

教えていただいたことを参考にしながら再度試しましたが、やはりどうしても情報取得日に一斉に予定が追加されてしまいましたので、別の番組表サービスのRSSを読み込むようにしたところ、放送日時に予定が追加されました。ありがとうございました。

投稿2020/02/03 23:59

kuroryu

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問