![見出し画像](https://assets.st-note.com/production/uploads/images/80993562/rectangle_large_type_2_5b4e649b09f70de16ebadfc51f67708b.png?width=1200)
GAS × LastPassAPI スプレッドシートにLastPassに格納されている情報を書き込みたい その2 HTTPリクエスト
前回
GASコード
情報を得たいので、APIを叩くってやつをやりたい訳です。
GASのコードとしては、結果としては下記のようなもので getsfdata のレスポンスは得ることができています。
function test_getsfdata() {
const url = 'https://lastpass.com/enterpriseapi.php';
const scriptProperties = PropertiesService.getScriptProperties();
const cid = scriptProperties.getProperty('AccountNumber');
const provhash = scriptProperties.getProperty('ProvisioningHash');
const options = {
"method": "POST",
"header": { "Content-Type": "application/json", },
"payload": {
"cid": cid,
"provhash": provhash,
"cmd": "getsfdata",//getdetailedsfdata だと 429エラー。 "getuserdata", "getsfdata"は通る
"data": "all"
}
}
const response = UrlFetchApp.fetch(url, options);
console.log(`response: ${response}`);
const obj = JSON.parse(response);
console.log(obj);
}
しかし、わからないのはコマンド(cmd)をgetdetailedsfdata にすると、
一発で 429 Too Many Requestsエラーが返ってくるのです。
どういうことなんだ。
上記は結果としてシンプルなコードになりました。しかし、当初はgetdetailedsfdataで試みていたので、なぜ通らないのか、GASコードを色々と弄っていました。その痕跡↓
// const auth =
// {
// "type": "noauth"
// }
// const headers =
// {
// "Content-Type": "application/json",
// }
// const payload = {
// "cid": cid,
// "provhash": provhash,
// "cmd": "getdetailedsfdata",
// "data": "all"
// }
// const raw = {
// "cid": cid,
// "provhash": provhash,
// "cmd": "getsfdata",
// "data": "all"
// }
// const payload = {
// "mode": "raw",
// "raw": JSON.stringify(raw),
// "options": {
// "raw": {
// "language": "json"
// }
// }
// }
参考
methodがGETでないのが不思議な気もしますが、公式にPOSTにせよと書いてあります。この辺りのことは管理コンソール>Advanced>Enterprise API から確認できます。
![](https://assets.st-note.com/img/1655619839000-KguiPWnC4L.png?width=1200)
補足
プロパティはコード書いて格納するか、下図のようにGASのエディタから編集してください。cid(AccountNumber)は公式のヘルプを参照してください。
Where can I find the CID (account number) and API secret?
![](https://assets.st-note.com/img/1655620119988-PsU88UXOI4.png)
curl
curlが使えると良さそうなのですが、自分は詳しくありません。
下記の記事をみて、東京の天気予報はゲットできましが、その先どうすっか。
https://aprico-media.com/posts/8236
WindowsでBOXのCLIをどうにかした時のコマンドと似ているような気はします。
Postman
使えるようになると良さそうですが、これも自分は詳しくありません。
Use the LastPass Enterprise API Postman Collection
https://support.lastpass.com/help/use-the-lastpass-enterprise-api-postman-collection
謝辞
本件にあたっては、 Shinji(@sakichi01_)さんに大変お世話になりました。
深く感謝申し上げます。
ありがとうございます!!!!!!
一連のツイート、スレッドはこちら
あーやっぱpayloadかな
— a03⛅ (@a03) June 14, 2022
Bearer?
うーん
続き
#GAS
#API
#パスワード管理
#json
#httpリクエスト
#LastPass
#curl
#Postman
いいなと思ったら応援しよう!
![good-sun(a03)](https://assets.st-note.com/production/uploads/images/74915135/profile_e6435615735e2ec66a673a40d90bb4a5.png?width=600&crop=1:1,smart)