appnedした場合、動的なイベントの追加には、工夫がいるようだ。
$("親要素").on('click', '該当する要素', function(e){
var tmp=e.target.id;
});
のように利用できる。
ちなみに、以下の方法はだめだった。
$("該当する要素").change(function(e) {
var tmp=e.target.id;
});
appnedした場合、動的なイベントの追加には、工夫がいるようだ。
$("親要素").on('click', '該当する要素', function(e){
var tmp=e.target.id;
});
のように利用できる。
ちなみに、以下の方法はだめだった。
$("該当する要素").change(function(e) {
var tmp=e.target.id;
});
権限の関係でグループのEmaiアドレスは取得できても、名前が取得できないことがあるようだ。画面上では表示されているが、ダウンロードはEmaiのみ。ただし、Chromeで、「名前を付けて保存」>ファイルの種類を「ウエブページ、完全」 を選択して保存すると、UTF8で全角文字できちんと保存されるので、面倒だが、このデータをGdriveに持って行って、GASでパースすることにした。
GASは、データを保存したいスプレッドシートに、スクリプトを作成する。この場合、Parseというライブラリの追加が必要。2022.7現在、ライブラリのIDは
1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw
もっと簡単な方法がありそうだが、とりあえず、以下のスクリプトで、無事 Emailと名前のリストが取得できた。
function member_parse() {
var contents = DriveApp.getFolderById('ここにフォルダのID')
.getFilesByName('メンバーリスト.html')
.next()
.getBlob()
.getDataAsString("utf8");
//Logger.log(contents);
let mList= new Array();
let eList= new Array();
names = Parser.data(contents).from('<div class="LnLepd">').to('</div>').iterate();
emails=Parser.data(contents).from('Sq3iG" href="mailto:').to('</a>').iterate();
for(nm of names){
mList.push(nm);
}
var ci=0;
for(em of emails){
if (ci % 2 ==0){ eList.push(em.split('>')[1]);}
ci++;
}
//console.log(zip(eList,mList));
NameEmailList=zip(eList,mList);
var sheet = SpreadsheetApp.openById('ここにスプレッドシートのID').getSheetByName('shokuin');
for (gyo of NameEmailList){
sheet.appendRow(gyo);
}
}
const zip = (...arrays) => {
const length = Math.min(...(arrays.map(arr => arr.length)))
return new Array(length).fill().map((_, i) => arrays.map(arr => arr[i]))
以前つくった、sumahoCopyなる自作アプリを、買い替えたスマホに入れようとしたら、セキュリティが厳しくなっており、以前のようにインストールできない。
ネットで調べたら、build.gradleを以下のように修正して、ビルドするとインストールはうまくいった。
古いシステムを動かしてみた。けっこう大変だった。
・JavaのバージョンをJava8にしないとだめだった。Tomcat9は使えたが。
・Mysqlの仕様変更があり、SSH上では、rootが作成できず、適当なユーザー名を作って、それに権限を与えることでなんとか動かせた。
やはり、一筋縄ではいなかようだが、時間かければなんとかなるということ。
鍵生成をいろいろな方法で試してみたり(ユーザー名、鍵の形式、GCEの権限内容等々)
いろいろ試行錯誤してだめだった。困っていたところ、
こちらの情報によると、インスタンス内のOSがSSHに厳しくなっているのが原因らしい。サイトの情報をもとに設定したら、使えるようになった。
GCEのインスタンスにファイルを転送するためWinSCPを使えるようにしてみた。秘密鍵、公開鍵の扱いに不慣れなので、いろいろ勉強になった。
Herokuクラウドの無料枠もなくなったので、まだ無料枠が残っているGCEを使ってみた。
インスタンスの使い方がわからず、とまどったが、ネット上の情報に助けられる。まず、プロジェクトを作成する必要がある。ここで、適当に北米など選んでしまい、あとで、東京もあることに気づき、やり直すことに。ドメインは、すでに持っていたものを使い、DNSの設定なども必要に、TXT,Aレコードなどを追加していった。これに、今後はさらに、SSL化のために、証明書の発行なども必要になってきたり、Tomcatを使う予定なので、ポートの変換など、いろいろ手間がかかりそうだ。
プロジェクトのあとは、インスタンスを作成、これがDockerのような仮想サーバなのだろう。OSや、CPUも選べるし、柔軟なカスタマイズができそう。そのぶん、設定項目が多くなってしまうが。
つぎに、ターミナルがブラウザで表示なるので、てっきりここで、インスタンスの中を覗けるものだとだと勘違いしていた。何度か、SSHやApacheの設定を挑戦しても、外からアクセスできなかったので、おかしいなと、ルータのパケットフィルターやら、サーバのファイアーウオールやら、Apacheのポート変更やら、試行錯誤繰り返した。それでもうまくいかない。
それもそのはず、インスタンスは、すぐ下のターミナルで操作するのでなく、「SSL」という小さなボタンをクリックすることで、それぞれのインスタンスの中をSSLで覗くことになるのだった。これに気づくまで、だいぶ時間がかかってしまう。ようやく、外からHTTPにアクセスできるようになる。