/// <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);
        }
示例#2
0
        /// <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);
        }