livedoor相互RSSをSSL対応させる方法を教えちゃいます(前編)

妹さえいればいい。 白川京 ちょっとだけ 20171117-Shirakawa-Miyako_s.jpg

ちょっと見せるだけなんだからね。





livedoor相互RSSが正式にSSL化されました。


 2018年1月31日にlivedoor相互RSSが正式にSSL化されたことが発表されていました。

livedoor 相互RSSがSSL化(https化)に対応しました|livedoor 相互RSS 開発日誌

いつもlivedoor 相互RSSをご利用いただきまして誠にありがとうございます。このたび、SSL化(https化)の対応が完了しましたのでお知らせします。SSL化(https化)されたタグを取得したい場合は、チャンネルごとに「貼付けコード」を再取得されるか、タグの中にあるURLの


 本記事に記載されている設定・変更を行わなくても、タグコード変更にてSSL化を行うことができます。
 詳細は上のブログカードリンク先を参照してください。
 なお、本記事自体は削除せず、SSL移行過渡期における時代のアダ花的記録として残しておくことにします。

Google Apps Scriptでの暫定SSL化を行っていただいた方へ
 本記事にて作成したグーグルドライブ上のアクセスファイルを削除する際には、まず起動トリガーを解除するようにしてください。

 具体的な手順については下ブログカードの記事を参考にしていただけるようお願いします。

livedoor相互RSSが正式にSSL化されました。 | 富士宮で貯蓄と資産運用

livedoor相互RSSが正式にSSL化。 先日ブログリンクを追加しようと思ってlivedoor相互RSSにアクセスしたら、2018年1月31日にlivedoor相互RSSが正式にSSL化lされたことが発表されていました。全然知らんかったわぁ。全く連絡ぐらいよこせっちゅーの!!



livedoor相互RSSのSSL対応の概要


 システム概要については先日下記記事で紹介しており繰り返しになってしまいますが、最初から本記事に来られた方や、またおさらいの意味でも再度説明しておきます。



 現状のlivedoor相互RSSのシステム概略は以下のような構成になっているものと思われます。
ライブドア相互RSS基本システム

 登録されている各ブログをlivedoorシステムが定期巡回し、最新記事情報を"roll_data.js"というファイルに記録します。

 FC2ブログ(僕のブログの場合)では、プラグインによって設置されたフリーエリアから、"blogroll.js"というJavaScriptを呼び出します。

 さらにその"blogroll.js"内部で先程の"roll_data.js"を解析して、リンク表示のHTMLを吐きだしています。

 SSL化したときにlivedoor相互RSSが表示されなくなるのは、まだSSL化されていないlivedoorサイトに保存されている"blogroll.js""roll_data.js"を呼び出そうとした時に、ブラウザによって弾かれてしまうことが原因となっていると思われます。



 この"blogroll.js""roll_data.js"SSL化サイトHTTPSアドレスに記録されていれば、SSL対応することができるようになると考え、構築したのが以下のシステム構成です。
ライブドア相互RSS基本システム2


 システムとしては大きく以下の2つに分かれています。

(A)Cronのように定期的スクリプトを起動させることができる「Google Apps Script」を使って、livedoorサイトに記録されている"roll_data.js"を1時間ごとにグーグルドライブ上にコピーします。

(B)FC2ブログ上にアップロードした"改造版blogroll.js"がグーグルドライブ上にコピーされている"roll_data.js"を呼び出します。


 全てを一気に説明するのは長くなってしまうので、今日は前編としてlivedoor相互RSSのSSL対応に向けての「準備」と、「Google Apps Script」を使ったシステムA部分の構築について紹介していきます。


1.livedoor相互RSSのSSL対応に向けての準備


 システム構築にあたり、あらかじめ設定・確認などが必要な項目について紹介します。

(1)グーグルアカウントを取得してください。
 ブログアクセス解析などでよく利用されているSeach Consoleを使っている方であれば、既にグーグルアカウントは登録済みになっているはずです。



(2)livedoor相互RSSの管理画面を開き、チャンネル設定で各項目を以下のように設定します。
SSL対応01-相互RSSチャンネル設定

 ※以下の設定を行わないと、livedoorサイトに保存されている画像データなどを取得しようとするため、【保護された通信】にならなくなってしまいます。

 ◆広告表示:テキスト
 ◆カテゴリ別表示:しない(※「する」設定での動作未確認)
 ◆アダルトフラグ:OFF(※「ON」設定での動作未確認)
 ◆アイコン:表示しない
 ◆ファビコン:表示しない
 ◆はてなブックマーク:表示しない



(3)livedoor相互RSSの貼り付けコードのID番号をメモしておきます。
 var blogroll_channel_id = xxxxxx ;
 貼り付けコード中のなかにあるxxxxxxに該当する数字がID番号です。


2.「Google Apps Script」の起動


(1)グーグル検索画面右上にある「グーグルアプリ」をクリックします。

SSL対応02-グーグルアプリ起動



(2)アプリの中から「ドライブ」をクリックします。
SSL対応03-グーグルドライブ起動



(3)グーグルにログインされていない場合は、ログイン画面が表示されるのでパスワードを入力してログインします。
SSL対応04-グーグルログイン画面



(4)しばらくするとグーグルドライブの画面が表示されます。
SSL対応05-グーグルドライブ初期画面



(5)「マイドライブ」→【その他】→【+アプリを追加】をクリック選択します。
SSL対応06-GDアプリを追加選択



(6)追加アプリの選択画面が表示されるので、「Google Apps Script」をクリックします。
SSL対応07-GASを追加選択



(7)接続をクリックします。
SSL対応08-GASアプリを接続



(8)接続済みになったら、もう一度「マイドライブ」→【その他】→【Google Apps Script】をクリック選択します。
SSL対応09-GASアプリを選択



(9)「Google Apps Script」の画面が表示されます。

SSL対応10-GAS起動画面


3.スクリプトコードの記述


 次にlivedoorサイトに記録されているID番号毎の"roll_data.js"をグーグルドライブ上にコピーするスクリプトを作成していきます。

(1)以下のようにスクリプトコードを記述します。
   ※xxxxxxには相互RSS貼付コードのID番号を記述してください。
function myFunction() {
var image = UrlFetchApp.fetch('http://blogroll.livedoor.net/xxxxxx/roll_data').getBlob();
var filename = "xxxxxx_roll_data.js";
var mimeType = 'text/javascript';

var children = DriveApp.getFilesByName(filename);
var file = null;
if (children.hasNext()) {
// ファイルが有れば内容を更新
file = children.next();
var text = image.getDataAsString();
file.setContent(text);
}
else {
// ファイルがなければ新規作成
file = DriveApp.createFile(filename, image.getDataAsString());
}
}



(2)一旦【保存】しておきます。

SSL対応11-スクリプトコードの保存



(3)プロジェクト名を入力します。
   相互RSS貼付コードのID番号に関連付けた名前にすると後々分かりやすいです。
SSL対応12-プロジェクト名入力



(4)スクリプトを【実行】します。

SSL対応13-スクリプトの実行



(5)スクリプトのグーグルドライブアクセスへの承認ウィンドウが表示されるので、【許可を確認】をクリックします。

SSL対応14-ファイルアクセス承認画面



(6)アカウント選択ウィンドウが表示されるので、現在ログインしているアカウントを選択します。
SSL対応15-アカウント選択画面



(7)アプリ確認の警告画面が表示されますが、ビビらずに【詳細】をクリックします。
SSL対応16-アプリ警告画面



(8)更にビビらすようなことを言ってきますが、かまわず先程保存したプロジェクト名のリンクをクリックします。
SSL対応17-アプリ警告画面2



(9)「次へ」と入力しろと言ってくるので、アホみたいですが「次へ」という文字を入力し、右下の【次へ】をクリックします。

SSL対応18-【次へ】入力画面



(10)スクリプトのグーグルドライブアクセスと外部サービス接続の承認を求めてきますので、「許可」をクリックします。
 この際にグーグルアカウントに登録してあるメールアドレスに接続許可された旨のメールが送られてきますが、最初の1回だけなので気にしないで下さい。
SSL対応19-アクセス許可確認画面



(11)しばらくしてスクリプト処理が完了すると元のコード記述画面に戻りますので、グーグルドライブに移って(ID番号)xxxxx_roll_data.jsファイルが作られていることを確認します。

SSL対応20-roll_data作成済



(12)roll_data.jsファイルをダブルクリックしてプレビュー表示させて、blogroll_write_feedsで始まり、赤のxxxxxx部分がID番号になっていることを確認します。
SSL対応21-roll_dataプレビュー確認


4.定期的なスクリプトの起動


スクリプトを一定時間毎に起動するためのトリガーを設定していきます。

(1)【現在のプロジェクトのトリガー】をクリックします。

SSL対応22-トリガーの設定



(2)青い文章のリンクをクリックします。
SSL対応23-トリガーの追加



(3)トリガー条件が表示されるので以下のように設定して、【保存】をクリックします。
   時間主導型   時タイマー   1時間ごと
SSL対応24-トリガー設定の保存


5.コピーしたroll_data.jsファイルの共有化


 ファイルを共有化しておかないとFC2ブログなどから外部アクセスすることができませんので、コピーしたroll_data.jsファイルの共有化とhttpsアドレスの確認をしておきます。

(1)グーグルドライブ上にコピーされた(ID番号)xxxxx_roll_data.jsファイルの上で右クリックして【共有】を選択します。
SSL対応25-ファイル共有化設定



(2)共有ユーザーの入力画面右下の【詳細設定】をクリックします。
SSL対応26-共有ユーザー入力



(3)共有設定のアクセスできるユーザー「非公開」の右にある【変更】をクリックします。
SSL対応27-共有設定変更



(4)「オン-リンクを知っている全員」にチェックを付けて、【保存】をクリックします。
SSL対応28-リンク共有設定



(5)共有設定画面に戻るので、アクセスできるユーザーが「リンクを知っている全員が閲覧できます」に変わっていることを確認して、共有リンクをクリップボードにコピーします。
SSL対応29-共有リンクのコピー



(6)共有リンクはそのままではアクセスできませんので、直接ダウンロードリンクに変換します。
 ブラウザの新しいタブを開いて、変換サイトGoogle Drive Direct Link Generatorにアクセスします。

Google Drive Direct Link Generator

This will only work for files that you UPLOAD to Google Drive. It will not work for documents, presentations, etc. created inside Google Drive. If you want to create a direct link to those, first download them to your computer then upload that file back on to Google Drive.




(7)上の段に先程コピーしたリンクアドレスをペーストして、【Creat Direct Link】をクリックします。

SSL対応30-共有リンクの変換1



(8)下の段に出てきたリンクアドレスをメモ帳やテキストエディタなどにコピペして保存しておきます。
 このリンクアドレスは次回blogroll.jsを改造する時に使います。

SSL対応31-共有リンクの変換2



(9)再びグーグルドライブの画面に移り、【完了】をクリックします。

SSL対応32-共有設定の完了



ひとまず、お疲れ様でした。


 以上でシステムA部分の構築は完了です。

 次回は、"改造版blogroll.js"の作成と、FC2ブログへのSSL対応livedoor相互RSSの実装方法を紹介していきます。

 手順を細かく紹介しているので複雑そうに見えますが、実際はそんなでもありません。
 ただ初心者向けの内容ではないのは確かです。

 またグーグルドライブとGoogle Apps Scriptを使った今回の手法は、他のまだSSL化されていない外部サービスにも応用できるだろうと思っています。

livedoor相互RSSをSSL対応させる方法を教えちゃいます(後編) | 富士宮で貯蓄と資産運用

livedoor相互RSSのSSL対応 livedoor相互RSSをSSL対応させるためのシステムは下図のようになっています。 システムとしては大きく以下の2つに分かれています。(A)Cronのように定期的スクリプトを起動させることができる「Google Apps Script」を使って、livedoorサイトに記録されている"roll_data.js"を1時間ごとにグーグルドライブ上にコピーします...



今日のアイキャッチ画像は。


 「妹さえいればいい。」から、白川 京(しらかわ・みやこ)ちゃんです。


「妹さえいればいい。」

妹さえいれば人生は常に最高なのに、なぜ俺には妹がいないのか……」 妹モノの作品ばかりを書き続けている妹バカの小説家・羽島伊月の周囲には、天才作家にして変態の可児那由多、女子大生の白川京、イラストレーターのぷりけつ、鬼畜税理士の大野アシュリーなど、個性豊かな人物たちが集まっている。


 ちゃんって、とっても純粋で良い子なんですよね。

 すぐ共感して泣いちゃったりするあたり、この先世間の荒波を乗り越えて生きていくことができるんだろうかと、アニメの中の話なのにオジサンはちょっぴり心配になっちゃいます。

 でも不破の独白シーンでのちゃんのもらい泣きは、きっと不破は勘違いしちゃうんじゃないかな?

 うん。僕だったら完全に勘違いするね。
 速攻惚れちゃう自信がある。
SSL妹さえいればいい。白川京

2 Comments

mochi  

説明画像作りに手間取りました (〃´o`)=3 フゥ

こんにちは。ぼっちんさん。

> 各種ブログサービスがSSL化に向かっていて、FC2ブログもやっと正式にAOSSLがスタートして、、、
> そんな中で、ブログのプラグインサービスの1つである「livedoor相互RSS」がまだこの時期に非SSLなサービスだなんてがっかりしてしまっているブロガーさんは数多くおられるんですからねぇ。

 確かにガッカリではあるんですけど… (;^_^A
 FC2ブログも含めlivedoor相互RSSも無料で使わせてもらっているサービスなんで、
 あまり無茶なことは言えないところもあったりするんですよね。
 時にはユーザーサイドが工夫していく事も必要だろうと思っています。


> まぁ、確かにシステム的にはマニアックな要素になってしまうのはいたしかたないですけど、でも「マネすれば出来る!」って位に緻密な解説してくださってるから、やる気のある人にはチャレンジしてみてもらいたいですよね(笑)

 中途半端に書くと問い合わせのコメントが多数来たりするかもしれないので、
 どちらかというと自分の為にちょっと気合いを入れて書いてみました。
 正直Googleさんのシステムが分かりづらいというのもあるんですけどね。


> 「トリガーの設定タイム」は、やっぱり1時間くらいが私も妥当かと思います ^^
> 分単位設定なんかにしてしまうと「livedoor相互RSS」のサーバーへ負荷を掛けすぎてしまって迷惑を掛けてしまうでしょうし (^^;; アセ

 Google Apps Scriptのトリガー設定は1時間単位でしか設定できないようになっているんで、
 サーバー負荷に関しては大丈夫だろうと思ってます。


> しかしまぁ、素晴らしい記事ですねぇ (^-^)//""パチパチパチ~♪
> 第二弾が楽しみですよ~♪

 ぼっちんさんに褒められると嬉しいです。 O(≧▽≦)O ワーイ♪
 後編は明日アップする予定です。
 今度はFC2ブログ内の設定が中心なので説明もシンプルになります。

 コメントありがとうございました!!

2017/11/19 (Sun) 12:32 |  REPLY |   

ぼっちん  

素晴らしいですね♪

mochiさん、おはようございます ^^

いやぁ、改めてmochiさんのアイデアマンぶりがうかがえる素晴らしい記事ですよ、ほんとに拍手ものです ^^

各種ブログサービスがSSL化に向かっていて、FC2ブログもやっと正式にAOSSLがスタートして、、、
そんな中で、ブログのプラグインサービスの1つである「livedoor相互RSS」がまだこの時期に非SSLなサービスだなんてがっかりしてしまっているブロガーさんは数多くおられるんですからねぇ。

ですから、mochiさんのこの記事は「livedoor相互RSS」利用者の救世主的記事です♪

まぁ、確かにシステム的にはマニアックな要素になってしまうのはいたしかたないですけど、でも「マネすれば出来る!」って位に緻密な解説してくださってるから、やる気のある人にはチャレンジしてみてもらいたいですよね(笑)
「トリガーの設定タイム」は、やっぱり1時間くらいが私も妥当かと思います ^^
分単位設定なんかにしてしまうと「livedoor相互RSS」のサーバーへ負荷を掛けすぎてしまって迷惑を掛けてしまうでしょうし (^^;; アセ
それが原因で外部利用をストップさせられちゃったらマズイですし(笑)

しかしまぁ、素晴らしい記事ですねぇ (^-^)//""パチパチパチ~♪
第二弾が楽しみですよ~♪

2017/11/19 (Sun) 09:08 | EDIT |  REPLY |   

Post a comment