見出し画像

AI ×Google Apps Script(GAS)非エンジニアでも簡単!AIでRSSリーダーを作る方法


効率化をするためにプログラミングを用いていろいろ効率化ツールを作ってみたいという方が多いのではないでしょうか。までも実際やるとなるとかなりプログラミングの学習コストがかかるんですよね。

プログラミングだけではなくてデータベースの取り扱いやその他ツールなどいろいろ覚えなきゃいけないこと学習しなきゃいけないことがあります。

までもAIを使えばどのようなステップでプログラムを作ってどのような手順でやるのかを教えてくれます。

そこで今回簡単なつるではありますけれどもGoogleシーツを使ってRSリーダーを。AIに作ってもらいました。

結論、”あっという間”です。

指定したサイトのRSSをGoogleスプレッドシートに読み込めるというものです。

いかが出来上がりで記事のタイトル、記事のURL、更新日時が一覧になっています。

GAS =Google AppsScriptで実装!

最初はPythonでやっていたのですが途中でGAS Google AppsScriptでやるのが一番良いというのが分かりました。それもAIに教えてもらいました。

Google Apps Script(GAS)は、JavaScriptに似た言語で書かれていますが、ブラウザ上で動作します。これにより、Googleのサービスと連携して動作するプログラムを作成することができます。

結論から言うとちゃんとGPTやチャットなどいろんなAIを試したのですがコードを書くのの優秀なのはMetaの Code Llama 34bでした。

Metaの Code Llama 34bは、Poeとというプラットフォームで使うことができます。

MetaのLlama2を使うことができるプラットフォーム、Poe

Code Llama 34bを使うことができるPoe(ポー)ですがアメリカのQuara(掲示板)をやっている会社がが運営しているプラットフォームです。無料で使えて、かなり便利!MetaのLlamaは無料で使えます。

プロンプト

プロンプトは以下のように打ちました。

新しいニュースをとるRSSをGOOGLE SHEETSでいち早く確認したいと思っています!
以下、ご協力いただけますでしょうか。

私は、プログラムや、GOOGLEのGoogle Apps Scriptについても初心者です。ご協力お願いします。

ainewsというGOOGLE SHEETSに、siteurlというシートを作ってRSSを取得したいRSSフィードのURLを書き、記事の情報を取得して、更新する時間ごとに新しいタブに、そこにRSSから取得した記事タイトル、URL、更新日付を記載する機能をつくりたいです。

Google Apps Scriptの方法でやりたいです。以下を要件に最初から方法をSTEP BY STEPで教えてください。

全てやるべきことは漏れなく、細かく記載いただけますでしょうか。(何しろ、私は初心者なので、お願いいたします!)

#要件
##ainewsというスプレッドシートを作成ずみ
##siteurlというシートにA列:サイト名 B列:サイトトップURLを記載
##siteurlからURLを取得、その後そのURLをもとにRSSのURLを取得
##更新する時間ごとに新しいシート自動で作成し、そこにRSSから取得した記事タイトル、URL、更新日付を記載
##更新情報は新しい順番に羅列
##RSSフィードを持つサイトのRSSのURLを直接入力
##更新時間は、Google Apps Scriptのトリガーで設定します。
##RSSのフォーマットにはRSS1.0、RSS2.0、Atomがあります。これに対応
する方法を盛り込み、プログラムコードを書いてください。
あくまで自分用が新しいニュースを見たいためで、WEBアプリとして公開はしません。

以下、忘れず実装してください。
RSSのフォーマットにはRSS1.0、RSS2.0、Atomがあります。これに対応する方法を盛り込み
更新のタイミングごとに新しいシートを作り、そこに更新情報を書き込む。siteurlの中にRSSで取得した情報は書き込まずに、新しいシートを作り書き込む。

Coede LIama 34bが出力してくれれ、GASに書いたコード

function fetchRSS() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("siteurl");
  var data = sheet.getDataRange().getValues();
  
  // Generate a random 5-character alphanumeric string for the sheet name
  var sheetName = Math.random().toString(36).substring(2, 7);
  
  // Create a new sheet for the RSS feed
  var newSheet = ss.insertSheet(sheetName);
  
  // Loop through each row of data
  for (var i = 0; i < data.length; i++) {
    var url = data[i][1]; // Get the URL from column B
    
    // Fetch the RSS feed
    try {
      var response = UrlFetchApp.fetch(url);
      var xml = XmlService.parse(response.getContentText());
      var items = xml.getRootElement().getChild("channel").getChildren("item");
    } catch (e) {
      Logger.log("Error fetching RSS feed: " + e.message);
      continue;
    }
    
    // Loop through each item in the RSS feed
    for (var j = 0; j < items.length; j++) {
      var title = items[j].getChildText("title");
      var link = items[j].getChildText("link");
      var date = items[j].getChildText("pubDate");
      
      // Write the data to the new sheet
      newSheet.appendRow([title, link, date]);
    }
  }
  
  // Add a header row to the new sheet
  newSheet.appendRow(["Title", "Link", "Published Date"]);
}

AIの指示通りにプログラムを動かしてみる

Google Sheetsのコード.gsにAIがいてくれたJavaccriptのコードを記載すれば
もう完成..実行ボタンを押せば、新しいシートが立ち上がり、RSSが取得できています。

トリガーを設定すれば、好きなタイミング、時間で取得ができます。

GAS、データベースとして使えますし、簡単な効率化をするために使うのにはもってこいです。

RSSフィードの取得ツールとしては、Feedlyなどが有名ですが、有料、ですよね。また、自分で作ればこれに色々なカスタマイズを超えることもできます。

GASもJavaScriptを書くためにそれなりに学習が必要だったものがAIによって自動でコードを書いてくれる時代になってしまいました。。。

この記事が参加している募集

AIとやってみた

この記事が気に入ったらサポートをしてみませんか?