/// <summary> /// データの更新 /// </summary> internal static void UpdateSheetData( string accessToken, string sheetId, Sheet.SheetProperties prop, string[,] param, string range, Action <PutSheet> success = null, Action <ErrorMessage> error = null) { var titleRange = $"\'{prop.title}\'!{range}"; var url = string.Format(SPREAD_SHEET_PUT_URL, sheetId, titleRange); var json = GoogleSpreadSheetUtil.ConvertPostJson(param, titleRange); var request = new UnityWebRequest(url, "PUT"); request.AddJson(json); request.SetAccessToken(accessToken); void Success() { var put = JsonUtility.FromJson <PutSheet>(request.downloadHandler.text); success?.Invoke(put); } request.Request(Success, error); }
/// <summary> /// クラスに変換 /// </summary> public void LoadSheet <T>( SheetData data, Sheet sheet, Action <List <T> > load = null, Action <ErrorMessage> error = null ) where T : class { void Convert(string[,] arg) { var list = GoogleSpreadSheetUtil.ListCast <T>(arg); load?.Invoke(list); } LoadSheet(data, sheet, Convert, error); }
/// <summary> /// 取得したデータをコンバート /// </summary> public static void GetSheet <T>( string spreadSheetId, string sheetName, Action <List <T> > loaded = null, Action <ErrorMessage> error = null ) where T : class { void Convert(string[,] data) { var list = GoogleSpreadSheetUtil.ListCast <T>(data); loaded?.Invoke(list); } GetSheet(spreadSheetId, sheetName, Convert, error); }
/// <summary> /// 公開されているシートを取得 /// </summary> public static void GetSheet( string spreadSheetId, string sheetName, Action <string[, ]> loaded = null, Action <ErrorMessage> error = null ) { var url = string.Format(SPREAD_SHEET_SHARE_GET_URL, spreadSheetId, sheetName); var request = UnityWebRequest.Get(url); void Success() { var csv = request.downloadHandler.text; var data = GoogleSpreadSheetUtil.ParseCSV(csv); loaded?.Invoke(data); } // csv形式 request.Request(Success, error); }
/// <summary> /// シートの中身をロード /// </summary> internal static void GetSheet( string accessToken, string sheetId, Sheet.SheetProperties prop, Action <string[, ]> onLoaded = null, Action <ErrorMessage> error = null) { var url = string.Format(SPREAD_SHEET_GET_URL, sheetId, prop.title); var request = UnityWebRequest.Get(url); request.SetAccessToken(accessToken); void Success() { var sheet = GoogleSpreadSheetUtil.ParseJson(request.downloadHandler.text); onLoaded?.Invoke(sheet); } request.Request(Success, error); }