メインコンテンツまでスキップ

KurocoでRSSを取得するにはどうしたら良いですか?

バッチ処理で定期的にRSSを取得し、Kurocoのコンテンツに追加or更新することで対応が可能です。

RSSフィードの取得

バッチ処理に次のようなSmartyコードを記述すると、RSSフィードの内容を連想配列で取得できます。

{get_file var='rss_xml' url='https://www.diverta.co.jp/RSS.rdf' save=false}{* RSSの内容を取得 *}
{xmltojson var='rss_json' xml=$rss_xml}{* XMLをJSONに変換 *}
{assign var='rss_feed' value=$rss_json|@json_decode}{* JSONを連想配列に変換 *}
ヒント

取得・変換したRSSの内容は以下の記述を追加してテストすることで確認できます。
test:{$rss_feed|@debug_print_var}

Kurocoコンテンツの更新

複数のコンテンツを一括で更新する場合、 bulk_upsert APIを使うとリクエスト数・処理時間の削減が出来ますので、必要に応じてご利用ください。 取得したRSSデータを以下のように変換してAPIにPOSTすることで、コンテンツの更新が可能です。

{* RSSデータをKurocoコンテンツのフォーマットに変換 *}
{assign_array var='body' values=''}
{assign_array var='body.list' values=''}
{foreach from=$rss_feed.entry item='entry'}
{assign_array var='topics' values=''}
{assign var='topics.subject' value=$entry.title}
{assign var='topics.ext_1' value=$entry.id}
{assign var='topics.ext_2' value=$entry.updated}

{assign var='body.list.' value=$topics}
{/foreach}

{* コンテンツの一括更新 *}
{api_internal
var='response'
status_var='status'
endpoint='/rcms-api/1/topics/bulk_upsert'
method='POST'
queries=$body
member_id=1}

関連ドキュメント


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。