APIが公開されているQWatchというネットワークカメラからGASを使ってLINEBotに静止画を送信する試みです。
APIの仕様は以下の通り
Authority: ユーザーまたは管理者(admin)
Method: GET
URL: /snapshot.jpg
Parameter: なし
<使用例>
コマンド
curl --digest -o test.jpg -u <UserName>:<Password> http://<IPAddress>:<HttpPort>/snapshot.jpg
戻り値
HTTP/1.1 200 OK<CRLF>
Content-Type: image/jpeg<CRLF>
Content-Length: <body length><CRLF>
Date: <Date><CRLF>
<CRLF>
<Image Data>
GASで書いたコードが以下のとおりです。
1 2function getDataFromCamera(){ 3 const auth_data = Utilities.base64Encode(`${"ユーザー"}:${"パスワード"}`); 4 var options = { 5 "headers": {"Authorization" : `Basic ${auth_data}`} 6 } 7 8 const response = UrlFetchApp.fetch("http://IPアドレス:ポート/snapshot.jpg",options); 9 Logger.log(response) 10 11} 12
コードを実行すると、以下のエラーメッセージが表示されます。
無効なリクエスト: http://IPアドレス:ポート/snapshot.jpg(行 7、ファイル「カメラ」)
APIの仕様にはパラメータ不要と書いてあるのですが、ベーシック認証を突破するのに必要なんじゃないかと思って書いたのがこのコードなのですが、何か根本的に見落としているような気もして、質問させていただきました。
ご教示のほど、お願いいたします。
回答1件
あなたの回答
tips
プレビュー