LoginSignup
2
1

More than 1 year has passed since last update.

GASでSwitchBot API にリクエストを送り物理ボタンを制御する

Posted at

自己紹介

開発経験もない文系プログラミング初心者です。
コードは拙いかもしれませんが、少しでも参考になれば幸いです

参考記事

以下の記事を参考にさせていただきました!

どうやってやるか

  • アクセストークンを取得(10回ボタン押して隠しボタン出す。上記の記事参考)
  • デバイスIDを取得(下記を参考)
  • それらをもとにGASでHTTPリクエストを送る

全コード

*注意* アクセストークンが知られてしまうと誰でも制御可能になってしまいます
*注意* 絶対に知られないようにしましょう

function switchBot() {
   //header情報として取得したトークンを設定
var headers = {
  "Authorization" : "ここに自分の開発者トークンを貼り付ける",
  "Content-type": "application/json; charset=utf-8" //Content-typeとはリクエストbodyはjson形式ですよと言うやつ
  };
  
  var data = {
    "command": "turnOn",//turnOffにすれば消えます
    "parameter": "default",
    "commandType": "command"
  };
  //UrlFetchApp.fetch()の第二引数optionsの設定部分
  var options = {
    'method' : 'post',
    "headers" : headers,
    "payload" : JSON.stringify(data)
    //jsonオブジェクトを作る→json形式でサーバで制御→jsonオブジェクトとしてresponseを制御するため
    //       ↑                     ↑     
    //これがJSON.stringify()      これがJSON.parse()メソッド

  };


  var deviceid = "自分が取得したデバイスIDを入れる";//制御したいdeviceid
  var url1 = `https://api.switch-bot.com/v1.0/devices/${deviceid}/commands`;
  

  

  var response = UrlFetchApp.fetch(url1,options); //gas版http request パラメータあり
  var json=JSON.parse(response.getContentText());//これがJSON.parse()メソッド
  console.log(json)//成功したか確認
}



deviceIDの一覧取得方法

function deviceid() {
//header情報として取得したトークンを設定
var headers = {
  "Authorization" : "自分のアクセストークンを取得してください",
  "Content-type": "application/json; charset=utf-8" //Content-typeとはリクエストbodyはjson形式ですよと言うやつ
  };


var url = "https://api.switch-bot.com/v1.0/devices";
    
var options = {
      'headers': headers
    };
var reply = UrlFetchApp.fetch(url, options);
var json=JSON.parse(reply.getContentText());

console.log(json['body']['deviceList'])//ログから取得したいdeviceIdを選んでください

}

やってみた感想

初心者の僕でも一日で出来たので比較的分かりやすいと思います。文章が拙かったらすいません。
また、組み合わせ次第でなんでも、自動化出来そうだと思いました。
スマートスピーカー、スマートスイッチ、SwitchBot、IFFFT、Zapier、IOSショートカットなど組み合わせればなんでも
出来そうですね。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1