obnizのフォーラムは新しいシステムに移行しております。

新しいフォーラムはこちらになります

外部サービスからのSOAP APIアクセス



  • プログラム初心者です。

    GoogleAppScript で作ったWebページから、SOAP APIでobnizハードにアクセスしたいのですが
    可能でしょうか。

    いろいろ調べて、以下のコードを書けばアクセスできるか?と思ったところ、404エラーが返っ
    てきている状態です。

    <コード>
     const response = UrlFetchApp.fetch('https://obniz.com/obniz/0000-0000/api/1');
    ※「0000-0000」は実際には 手元にある機器の obniz ID を記載してます。

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



  • @宮滝-徹平 さん

    デバイスの操作(spreadsheet → obnizデバイス)の一方向の通信であれば、REST APIにて対応が可能です。

    書かれたプログラムも惜しいです。
    そちらのURLはデバイスにアクセスできるAPIで、やり方も合っているのですが、HTTPのメソッドがPOSTではなくGETになっているため、404エラーが帰ってきてしまっています。

    POSTにして、JSONデータを渡すことでデバイスの操作ができます。

    function myFunction() {
      console.log("stat");
      var data = { display:  { "clear": true, text: "Hello, obniz!"} };
      var options = {
        'method' : 'post',
        'contentType': 'application/json',
        'payload' : JSON.stringify(data)
      };
    
       const response = UrlFetchApp.fetch('https://obniz.com/obniz/46273152/api/1',options);
      
    }
    
    


  • お世話になります。ありがとうございます。
    optionsパラメータで、「これはPOSTですよ」と指示してあげないといけないということですね!(解釈間違っておりましたらすみません。。。)

    頂いたコードに沿って修正したところ、404エラーは返ってこず通過しました!
    ですが、操作が成功したのかが判断できませんでした。(機器が離れたところにあるため。)

    デバッグで変数responseの中身を見てみたのですが、どの項目を見たら良いのかも判断つかず・・・
    responseの各項目が何を表しているかのリファレンスのようなものはございますでしょうか。

    追加で質問すみません、何卒よろしくお願い致します。



  • optionsパラメータで、「これはPOSTですよ」と指示してあげないといけないということですね!(解釈間違っておりましたらすみません。。。)

    はい、こちらの理解であっています。

    responseの各項目が何を表しているかのリファレンスのようなものはございますでしょうか。

    responseには何も返ってこず、statusで指示が受け付けられたかどうかのみわかります。
    spreadsheet → obnizデバイスの一方向の通信となり、命令を投げっぱなしの状態になります。



  • ご回答ありがとうございます。

    responseには何も返ってこないのですね。
    最終的に実現させたいことが、以下になります。
     ・GoogleAppScriptからobniz機器のON/OFFを指示する。
     ・GoogleAppScriptからobniz機器のステータス(ON/OFF)を取得する。

    上記を実現することは可能でしょうか。
    お教え頂いたプログラム以外で実現することとなるのでしょうか。

    追加質問で申し訳ございませんが、何卒よろしくお願い致します。



SUGGESTED TOPICS