プログラミングの第一歩?

2019年5月7日火曜日

お勉強 スマートフォン パソコン

RSSリーダーはオワコン...だなんて話題をよく見かけるけど、
ニュースやブログ、はたまたSNSなどの欲しい情報を
なんでもかんでも登録しておくと
情報が更新されると、パソコンやスマホに
いち早く通知してくれるので、
オレ的には欠かせない存在(笑)
本当に必要な情報に絞れるし、
SNSのように余計な情報に触れなくて良い分、
気持ちが楽?
しかも、新しい情報が出たら通知してくれるから、
探しに行かなくても良いので楽?

そんなRSS更新情報にこだわって
臨床工学技士のアンテナ」だなんて
アンテナサイトを拵えてみた

...だけど、
プログラムの知識を持たなかったので
外部のRSS Feed(更新情報)サービス(もちろん無料)を利用して、
ウェブサイトにコピペして表示させていた(笑)
...しかし、
掲載サイトが100を超えたあたりから
外部サービスのサーバで対応できなくなって
エラーが頻発(無料だからか?:苦笑)

半分以上、更新表示されなくなり
ウェブサイトとして更新するのも恥ずかしいほど
使い物にならなくなった(汗)

そこで、RSS FEEDを自作してみようと
今まで逃げ回っていたプログラミングに挑戦!?

イヤイヤイヤ...
いきなりは難しんで、
ググって、同じことやっている方のやり方をコピペ
...じゃなくて、参考にさせてもらって
チョイ改造を加えてみた(笑)

Googleアカウントを持っているなら
Google Apps Script(GAS)を使うと簡単できちゃうんだよね

GASとは、
Googleが提供する、Webアプリを開発するプログラミング言語で
有名なJava Script(JS)がベースとなっている
GASを勉強したら、JSの勉強にもなるかもね(笑)

Google特有のサービス
Gmailやマップ、カレンダー
ドキュメント(Wordみたいなもの)や
スプレットシート(Excelみたいなもの)
等々...と連携させると、
いろんなことが自動化できるそうな!?

...で早速、以下のサイトにアクセス
https://script.google.com/home

「+新規スクリプト」よりコードを打ってみた(汗)


[コード.gs]

1   function doGet() {
2   return HtmlService
3   .createTemplateFromFile('index')
4   .evaluate();
5   }
6
7   function getRss() {
8   // フィードのURL
9   var feedURL = "https://feed43.com/xxxxxxxxxxxxxxxx.xml";
10  var response = UrlFetchApp.fetch(feedURL);
11  var xml = XmlService.parse(response.getContentText());
12
13  var items = xml.getRootElement().getChildren('channel')[0].getChildren('item');
14
15  var articles = [];
16  for(var i = 0; i < items.length; i++) { 17  var title = items[i].getChild("title").getText(); 18  var url = items[i].getChild("link").getText();
19  articles.push({title: title, url: url});
20  }
21  
22  return articles;
23  }


これをHTMLに落とす...Feedボタンなども付け加えてみた(汗)
[Index.html]

1   <!DOCTYPE html>
2   <html>
3   <head>
4   <base target="_top"></base>
5   <style type="text/css">
6
7   li {
8   padding-top:10px;
9   padding-left :0px;
10  list-style-type: square;
11  color: #AAAAAA;
12  border-bottom: dotted 1px #AAAAAA;
13  }
14
15  </style>
16  </head>
17  <body>
18  <a class="RSS Feed" href="https://feed43.com/xxxxxxxxxxxxxxxx.xml" target="_blank"><img alt="RSS Feed" height="20" src="https://images-fe.ssl-images-amazon.com/images/I/318pS6vsuxL.png" width="20" /></a>
19  <a class="Feedly" href="https://feedly.com/i/subscription/feed%2Fhttps%3A%2F%2Ffeed43.com%2Fxxxxxxxxxxxxxxxx.xml" target="blank"><img 20="" alt="follow us in feedly" height="20" id="feedlyFollow" src="http://s3.feedly.com/img/follows/feedly-follow-square-volume_2x.png" width="20" /></a>
20  <a class="Inoreader" href="https://www.inoreader.com/?add_feed=https://feed43.com/xxxxxxxxxxxxxxxx.xml" target="_blank"><img alt="follow us in inoreder" height="20" id="inoreaderFollow" src="https://jds-blog.net/wp-content/uploads/2018/11/inoreader-1.jpg" width="20" /></a>
21
22  <ul id="things">23
<li>Loading...</li>
24  </ul>
25
26  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
27  <script>
28  // The code in this function runs when the page is loaded.
29  $(function() {
30  google.script.run.withSuccessHandler(showThings)
31  .getRss();
32  });
33
34  function showThings(things) {
35  var list = $('#things');
36  list.empty();
37  for (var i = 0; i < things.length; i++) {
38  list.append('<li>' + '<a href="' + things[i].url + '">' +things[i].title + '</a></li>
');
39  }
40  }
41  </script>
42  </body>
43  </html>


あとは、保存→公開で
ウェブアプリケーションのURLを
サイトにコピペするだけ!?

意外と簡単だった(笑)
これを、100を超える全てのサイトを置き換えるのに
丸1週間かかった(休日はほぼ返上で:汗)

だけど、外部サービス使ってたときと比べ
エラーは皆無
動作もかなり快適になったよ(嬉)

GASを活用したら、
ウェブアプリ以外にも
いろんなことができそうだね...

SLACKのようなスタッフ間の連絡ツールや勤怠管理、
災害時の情報ツール、
クラウド型の医療情報システムなんかも作れるかも?

夢は広がるね(笑)

前スレで脱Google!とか偉そうなこと言ってたのに
これじゃ抜けるどころか、Google様々だな(苦笑)

その前にGAS(JS)について
もう少し勉強するとします(苦笑)