実現したいこと
*マインクラフトサーバーです。
- Google Apps Scriptで外部のAPIを実行したい
- Agamesというマイクラサーバーの管理をしたい(pterodactyl)
前提
Google Apps Scriptでpterodactyl製のサーバー管理システムを管理したい
具体的に、
- LINE上でサーバー上のファイルを削除したい
用途
- LINE上で指定フォルダ("worlds")を削除
- 自動で再起動してワールドを一から作り直す
発生している問題・エラーメッセージ
GAS上では実行完了となっていますが実際にファイルを削除できていません。
///
該当のソースコード
GAS
1function myFunction() { 2 const Uli = "https://p2.agames.jp/api/client/"; 3 //サポートより教えていただきました。 4 5 const options = 6 { 7 "headers" : { 8 "Accept" : "application/json", 9 "Content-Type" : "application/json", 10 "Authorization" : apikey 11 }, 12 "body" :{ 13 "root": "/home", 14 "files": [ 15 "worlds" 16 ] 17} 18 }; 19 UrlFetchApp.fetch(Uli, options); 20} 21
試したこと
bodyの中の"files"を"folders"に変えたりしました。
公式のドキュメントの見方が難しくてよくわかりませんでした。
補足情報(FW/ツールのバージョンなど)
【Minecraft】
Bed Rock版
【使用サーバー】
Agamesさん
【ドキュメント】
pterodactyl[公式サイト]
pterodactyl [APIドキュメント]
UrlFetchApp.fetchの戻り値は確認されましたか?
何も出なくて"完了"で終わってしまってます
UrlFetchApp.fetch
と戻り値を取得していないので、取得して中身を確認してみましょう。
その中に404とかHTTPのステータスコードとかが入っています。
どうしたら取得できますか
教えて欲しいです。
また、エラーが起きた時は404や401などのHTTPステータスは表示されていました
「UrlFetchApp.fetch 戻り値」とでも検索すればいろいろ出てきます。
{ toString: [Function],
getResponseCode: [Function],
getContent: [Function],
getContentText: [Function],
getHeaders: [Function],
getAllHeaders: [Function],
getBlob: [Function],
getAs: [Function] }
このように帰ってきました
getResponseCodeやgetContentTextを使ってAPIを呼び出した結果何が返ってきたのか確認してみてください。
またAPIのドキュメントに
POST [ /delete] Delete file
https://pterodactyl.file.properties/api/client/servers/1a7ce997/files/delete
Deletes the specified file(s) or folder(s)
Headers
Accept
application/json
Content-Type
application/json
Authorization
Bearer apikey
とPOSTするようにありますので、それに合わせてoptionを指定してみてください。
私もこのAPIは使用したことがありませんので、このAPI特有の詳しい話はわかりません。
