_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

◇ 気づけば師走 ・・・・・・             第732
☆モバイルオフィスの作り方 ★
Vol.0732

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

□ OneDriveにJavaScriptからアクセス・・・で苦しむ
□ 楽しいサボのプログラミング講座ーその19

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ OneDriveにJavaScriptからアクセス・・・で苦しむ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ExchangeServerやOneDriveなどクラウド上にあるサーバーにデータを登録したり
読み出したり出来ると素敵ですね・・・・
今回はそんなチャレンジで苦しんでいるというお話しです。


◇ OneDriveをHTML5のプログラムから操作したい・・・・
今回はある案件でいつも作っている業務システムのファイルの格納先にOneDri
veを使えないものかという実験をしています。

マイクロソフトさんの説明書では”出来る!”と書かれているのですが、手段
はたくさんあって、しかも説明書も多岐にわたっています。
そしてどれをとってもうまくいかない・・・・

例えば自身のOneDriveに接続するのですが、最近ではまずOneDrive上で接続す
るソフトを登録し、そこに認証の情報などを設定しておいて、JavaScriptから
はその認証されたIDを使って接続のトークンを発行してもらうようなのです。

トークンの発行まではうまくいきました(2日ほど不眠不休で戦った結果・・)
がそこから先が皆目見当がつきません。

私がふだんとてもシンプルにサーバーにアクセスをしているせいで、この世界
標準のセキュリティーの強力な接続方法やその後のコマンドの発行の仕方が根
本的に分かっていないのです。

◇ XmlHttpRequestは過去の遺産?
外部のサーバーと通信をする際には”XmlHttpRequest”というオブジェクトを
使うのですが、最近では同様のことを”fetch”というメソッドを使うそうです。

出来ることはよく似ているのですが最初からPromiseという非同期を同期とし
て扱う技術が組み込まれているそうで、”XmlHttpRequest”のような複雑なネ
スト処理は不要のようです。

別に私は”XmlHttpRequest”で困っていないのですが、OneDriveにアクセスす
るサンプルプログラムが新しい手法で書かれているのでまいっています。

時間をかけてよく見ていけば分かりそうな気がしますが・・・・
トホホですね。

◇ 出来なくても良いのではあるが・・・
かなり難解でやっかいな技術ですが、もし出来なくても他に代替えの手段はあ
ります。でも数テラバイトの安全と分かっている領域を利用できるというのは
とても魅力です。

戦いに超近代的な武器を手に入れるようなもので、以前から是非チャレンジし
たいと考えていました。
でもあまりの難しさと説明書のないことで心が折れかかっています。


そもそもマイクロソフトの解説は古い解説からつい最近のものまで多数が渾然
とある上に言語も何を対象にしているかさっぱり分からないですね。
昔からそうなのですが技術的な優劣以前に説明がきわまて下手だと思います。

ある解説書には・・・
”アクセス トークン (Access Token) が取得できたら、あとは、REST API を
呼び出すだけです。”

と書かれていて、たぶんAccess Tokenはとれているのでこのサンプル通りにし
たいのですが・・・
REST APIを呼び出す???ってどうやって??


どうも私が知っていることとやりたいことが時代的にも手法的にも全くかみ合
っていないようです。


どんな技術開発でもいつも心身共にボロボロになりかけますが今回は私が避けて
避けて通ってきた中に答えがありそうです。
こういった技術に強い若者に相談しようとしています。次回にはこれがクリアし
ているとうれしいのですが・・・
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ 楽しいサボのプログラミング講座ーその19
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
今日、ご説明するのはJavaScriptの機能の中でも私がもっとも好んでいる機能で
す。よく使う関数や機能を別のライブラリとして登録しておいて必要に応じて使
うというものです。


◇ jsファイル
JavaScriptではよく使う関数やもっと大がかりな機能を外部のファイルに格納
しておいて必要に応じて1行で呼び出す方法があります。
プログラムライブラリで遠い昔からそれぞれのプログラミング言語が独自に実
装していますがJavaScriptはきわまてわかりやすく使い方も簡単です。

例えば”2/1”と入力したら”2022/02/01”といった具合に今年の年月を返し
てくれる機能を実装するとしたら以下のようになります。

    function Hizuke(CuStr){
        var NowDate;
        var CuY;
        var CuM;
        var Cud;
        var RetStr;
        var PO;
        var Delimit;
        if(CuStr != ""){
            // もし/が無ければ・・・
            PO = CuStr.indexOf("/");
            if(PO == -1){
                CuStr = Right("00000000" + CuStr, 8);
                RetStr = Left(CuStr, 4) + "/" +  CuStr.substr(4, 2) + "/" +  Right(CuStr, 2);
            }else{
                Delimit = Csv(CuStr,"/");
                switch(Delimit){
                case 2:
                    if(CsvValue[1].length == 4){
                        RetStr = CsvValue[1] + "/" + Right("00" + CsvValue[2],2)  + "/" + Right("00" + CsvValue[3],2);
                    }else{
                        NowDate = new Date();
                        RetStr = NowDate.getFullYear() + "/" + Right("00" + CsvValue[1],2)  + "/" + Right("00" + CsvValue[2],2);
                        break;
                    }
                case 3:
                    RetStr = CsvValue[1] + "/" + Right("00" + CsvValue[2],2)  + "/" + Right("00" + CsvValue[3],2);
                    break;
                }
            }
            return(RetStr);
        }else{
            return "";
        }
    }

    これは私が日常的に使っているHizuke関数で、例えばHizuke("11/6”)と呼
    び出すと・・・・
    
    var GetDay = Hizuke("11/6”);
    GetDayには"2022/11/06"という答えが返ってきます。
    
    問題はこれを全てのプログラムに書き込むのか??とい事になりますが、実
    際にはそんなことはしません。
    
    例えばこんな簡単な関数ですがこのファイルを"Hizuke.js"という名称で登
    録したとします。(実際にはもっと多数の関数を詰め合わせるのですが・・・)
    
    これをHTMLの先頭の方で・・・・
    
    <script  src="Hizuke.js"></script>
    
    と書き込みます。するとこのHizuke関数を本体に書き込んだのと同じ効果が
    得られます。
    元々Hizuke関数は短いのでそれぞれに書いても害はないのですが、例えばSS
    Spread.jsなどは数千行に及ぶ大物です。
    
    これはHTMLのフォームにExcelのような表計算風の入力インターフェースを
    実現するのですが、これもたった1行で・・・
    
    <script  src="SSSpread.js"></script>
    
    と書くだけで本体に書いたのと同じように使えます。
    
 ◇ jsファイルを使うメリット
  単に本体のプログラムが長くならない(実際にはブラウザは全部読み込んでい
  るので長いのですが)ということの他に大きなメリットがあります。
 
  ・ 他でも使う汎用的なプログラム集だからバグが出にくい
  ・ 本体のプログラムとは全く別の使い慣れたオブジェクトとして扱えるので
マニュアルさえしっかりしていたらその機能と動作原理を考えなくても済む

特に他でも使っている場合には(そのためのライブラリだが)ほとんどバグは
無くなっているので単に使えば良いというメリットは大きいです。
Hiduke関数ぐらいなら毎回作っても知れていますが、Spreadやそのたここぞ
という見せ場のライブラリはそれを作るときに時間とエネルギーを費やして
いるのですから自身を開発者から普通のプログラマにしてくれます。
 
私の日常はお客様の仕様をあれこれと考えて実装するのが普通で、業務シス
テムのプログラマではありますが技術的な開発は時間と必要があるときにし
か出来ません。
 
そして日頃のプログラムとこの手のライブラリを作るときのプログラムでは
必要とされる能力も時間も全く違います。
 
数年に一度の頻度で私は開発者モードに入り、山にこもりますが、ふだんは
とても楽しくシステムのプログラミングをしています。
 
そのときにこの極めてシンプルな****.jsというファイルをフォルダーに配置
してHTMLの先頭に記述するだけでこれらのライブラリの機能を組み込めるこ
とはとてもありがたいことです。
 
 
JavaScriptの良い点は極めてシンプルで明快、そして基本的に全てテキストファ
イルであることでしょうか・・・・
私は新しいシステムを作り始めるたびにこれらライブラリをお客様のサーバーに
配置します。
どれを使うか使わないかは考えません。何分たいした大きさでもなく、実際のプ
ログラミングを始めてからHTMLで宣言すれば良いのですから・・・・
JavaScriptは大好きです。
━━━━━━━━━━━━━━━━━━━━━━ 
[モバイルオフィスの作り方]はサボのマナベが日々気づいたこ
とや思ったことをお天気の良い日の縁側に座ってポツリポツリと
お話しするようなマガジンです。
ご意見などもあることと思います。
もしご意見等がありましたらお寄せいただければ随時話題にして
いきたいと思います。
 
 
新規登録・解除はこちら
      ↓
http://sabot.jp/MailMagazine/Merumaga.html
==========================================
★発行責任者:
 (有)ファクトリー・サボ
  真鍋隆彦
 兵庫県神戸市垂水区東舞子町9-9
           マリタイム舞子501号
 Tel:078-787-3602 Fax:078-787-3619
 Mail:manabe@sabot.co.jp
 http://www.sabot.co.jp/
 ☆ソフトウェアーギャラリーに遊びに来てください
  https://secure3552.sakura.ne.jp/sabot.jp/Mitumori/
==========================================
 
◎このメルマガに返信すると発行者さんにメッセージを届けられます
※発行者さんに届く内容は、メッセージ、メールアドレスです
 
◎モバイルオフィスの作り方
  の配信停止はこちら
⇒ https://www.mag2.com/m/0000109792.html?l=ywj17bb991