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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

795閲覧

GAS  APIのresponseで帰ってきた値が、前日にAPIで取得した値と同じかどうか確認したいです

dame-dame

総合スコア78

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/06/07 00:08

https://teratail.com/questions/267963  

上記の回答をしていただいた方のおかげで、毎日 google app script を用いて、MX レコードの結果を
APIで取得して、slack に送ることができるようになりました。

今後毎日取得して、前日とMXレコードが変更されていないか確認しようと思っていました。
しかしながら 毎日取得するMXレコードの値は必ずしも毎日同じであるとは限りません。

例えば google のmx レコードは

google.com. 274 IN MX 10 aspmx.l.google.com. google.com. 274 IN MX 30 alt2.aspmx.l.google.com. google.com. 274 IN MX 20 alt1.aspmx.l.google.com. google.com. 274 IN MX 50 alt4.aspmx.l.google.com. google.com. 274 IN MX 40 alt3.aspmx.l.google.com.

だったり

google.com. 274 IN MX 20 alt1.aspmx.l.google.com. google.com. 274 IN MX 50 alt4.aspmx.l.google.com. google.com. 274 IN MX 10 aspmx.l.google.com. google.com. 274 IN MX 30 alt2.aspmx.l.google.com. google.com. 274 IN MX 40 alt3.aspmx.l.google.com.

だったりして、毎日異なる順番になります。
基本的にはMXレコードの値が変更されていなければ、上記のような行の並び順が異なっているのでしたら
問題ないと考えています。

そこでもしMXレコードの値が前回の出力と比べて書き換えられているとしたら、どのようにすれば、いいのか見当がつきません・
(diffコマンドは使えないので)

現時点では、上記のような結果をslackで一日に一回ポップアップするようにしています。下記のコードになにか書き足す形で
昨日取得したMXレコードと本日取得したMXレコードを比較して書き換えられていないかを確認するロジックは生成できませんでしょうか?
例えば、昨日MXレコードに変更がなかったら、OK、もし書き換えられていたらNGを出力するとか

お知恵をいただければと思います。

下記は私が書いたコードですslackに飛ばすwebhookの箇所は省略しています・

よろしくお願いいたします。

Google

1const apiUrl = "https://dns.google.com/resolve"; 2const type = "MX"; 3const name = "google.com"; 4const url = `${apiUrl}?name=${name}&type=${type}`; 5const response = UrlFetchApp.fetch(url); 6data0 = JSON.parse(response); 7content = [data0.Answer[0].data]; 8Logger.log(content); 9 10 11function dns() { 12 var jsonData = 13 { 14 "username" : username, 15 "icon_emoji": icon, 16 "text": content  17 }; 18 Logger.log(jsonData); 19 20 var payload = JSON.stringify(jsonData); 21 22 var options = 23 { 24 "method" : "post", 25 "contentType" : "application/json", 26 "payload" : payload 27 }; 28 if (response.getResponseCode() == 200) { 29 UrlFetchApp.fetch(postUrl, options); 30 } 31}

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

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

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

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

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

guest

回答1

0

ベストアンサー

Google Drive にテキストファイルなどに前日の結果を保存しておき比較するのはどうでしょうか。
レコードの順番が比較の問題なら、名前や優先度でソートしてから比較するだけです。

投稿2020/06/07 05:00

draq

総合スコア2573

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問