glideapp와 GAS로 만드는 간단한 테스트 터미널 대출 도구
13534 단어 glideappsspreadsheetgas
0. 소개
테스트 디바이스는 점점 늘어나고, 누가 사용하고 있는지 모르겠지요.
그럴 때 장치 대출 도구를 lowcode로 만들고 싶습니다.
재료는
- glideapps
- Google spreadsheet
- GAS
입니다
1. 데이터 준비
귀하의 테스트 단말기를 기반으로
Spread Sheet 준비
아래를 복사하여 "devices"라는 시트에 저장하십시오.
(
* 내용은 적절하게 변경하십시오
* images는 이해하기 쉽도록 장치의 사진을 찍어 두는 것이 좋습니다.
)
플랫폼
버전
id
vendor
장치
이미지
사용자
qrcode
api
iOS
8.4.1
1
Apple
iPhone 6
iOS
10.2.1
2
Apple
iPhone 6S
iOS
12.4.1
3
Apple
iPad mini 2
iOS
13.3
5
Apple
iPhone 7
...
...
...
...
...
이 시트가 만들어지면 "history"라는 시트를 비워 두십시오.
2. GAS 만들기
Code.gs를 아래에 다시 씁니다.
[Your spread sheet]를(를) 이 스프레드시트의 ID
[Your glide app]을 나중에 작성하는 glideapp의 ID
function doGet(e) {
//parameter validation
if(!e || !e.parameter || !e.parameter.id){
return redirect();
}
var user = Session.getActiveUser().getEmail();
var devices = SpreadsheetApp.openById("[Your spread sheet]").getSheetByName("devices");
var history = SpreadsheetApp.openById("[Your spread sheet]").getSheetByName("history");
var historyLastRow = history.getDataRange().getLastRow();
var values = devices.getDataRange().getValues();
var headers = values.shift();
var idColumn = -1;
var userColumn = -1;
var targetRow = -1;
//find id column and user column
headers.forEach(function(header,i){
if(String(header) == "id"){
idColumn = i;
}else if(String(header) == "user"){
userColumn = i;
}
});
//find target row
values.forEach(function(value,i){
if(e.parameter.id == value[idColumn]){
targetRow = i;
}
});
//validate
if(idColumn == -1 || userColumn == -1 || targetRow == -1){
return redirect();
}
//edit the sheet
var range = devices.getRange(targetRow+2,userColumn+1);
if(range.getValue() == user){
range.setValue("");
range.setBackground("white");
history.insertRowAfter(historyLastRow);
history.getRange(historyLastRow+1,1,1,4).setValues([[
e.parameter.id,user,(new Date()).toLocaleString(),"RETURN"
]]);
}else if(range.getValue() == ""){
range.setValue(user);
range.setBackground("red");
history.insertRowAfter(historyLastRow);
history.getRange(historyLastRow+1,1,1,4).setValues([[
e.parameter.id,user,(new Date()).toLocaleString(),"LOAN"
]]);
}
return redirect();
}
//redirect to glideapp
function redirect(){
return HtmlService.createHtmlOutput(
"<script>window.top.location.href='https://[Your glide app].glideapp.io/';</script>"
);
}
3.GAS를 Deploy
Publish -> Deploy as web app
Deploy는 이렇게 설정합시다.
- Execute the app:User accessing the web app
- Who has access to the app: Anyone
Deploy하면
htps : // sc pt. 오, ぇ. 코 m / 마 c로 s / s / 왓 x / 에 c
의 부분을 메모
4. Spread Sheet의 api와 qrcode 만들기
api 부분은
=CONCAT("https://script.google.com/macros/s/XXXXXX/exec?id=",C2)
qrcode는 qrserver.com을 사용하여 아래와 같이 한다
=CONCAT("https://api.qrserver.com/v1/create-qr-code/?data=",ENCODEURL(I2))
5. glideapp 만들기
h tps://.ぃ 이고 ps. 코m/
에서 "From Google Sheet"선택
죄송합니다 glide는 좀처럼 설명하기 어려워서
데모에서 살펴보십시오.
Reference
이 문제에 관하여(glideapp와 GAS로 만드는 간단한 테스트 터미널 대출 도구), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/freddiefujiwara/items/f7fbef76c9ee42e8b41b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
귀하의 테스트 단말기를 기반으로
Spread Sheet 준비
아래를 복사하여 "devices"라는 시트에 저장하십시오.
(
* 내용은 적절하게 변경하십시오
* images는 이해하기 쉽도록 장치의 사진을 찍어 두는 것이 좋습니다.
)
플랫폼
버전
id
vendor
장치
이미지
사용자
qrcode
api
iOS
8.4.1
1
Apple
iPhone 6
iOS
10.2.1
2
Apple
iPhone 6S
iOS
12.4.1
3
Apple
iPad mini 2
iOS
13.3
5
Apple
iPhone 7
...
...
...
...
...
이 시트가 만들어지면 "history"라는 시트를 비워 두십시오.
2. GAS 만들기
Code.gs를 아래에 다시 씁니다.
[Your spread sheet]를(를) 이 스프레드시트의 ID
[Your glide app]을 나중에 작성하는 glideapp의 ID
function doGet(e) {
//parameter validation
if(!e || !e.parameter || !e.parameter.id){
return redirect();
}
var user = Session.getActiveUser().getEmail();
var devices = SpreadsheetApp.openById("[Your spread sheet]").getSheetByName("devices");
var history = SpreadsheetApp.openById("[Your spread sheet]").getSheetByName("history");
var historyLastRow = history.getDataRange().getLastRow();
var values = devices.getDataRange().getValues();
var headers = values.shift();
var idColumn = -1;
var userColumn = -1;
var targetRow = -1;
//find id column and user column
headers.forEach(function(header,i){
if(String(header) == "id"){
idColumn = i;
}else if(String(header) == "user"){
userColumn = i;
}
});
//find target row
values.forEach(function(value,i){
if(e.parameter.id == value[idColumn]){
targetRow = i;
}
});
//validate
if(idColumn == -1 || userColumn == -1 || targetRow == -1){
return redirect();
}
//edit the sheet
var range = devices.getRange(targetRow+2,userColumn+1);
if(range.getValue() == user){
range.setValue("");
range.setBackground("white");
history.insertRowAfter(historyLastRow);
history.getRange(historyLastRow+1,1,1,4).setValues([[
e.parameter.id,user,(new Date()).toLocaleString(),"RETURN"
]]);
}else if(range.getValue() == ""){
range.setValue(user);
range.setBackground("red");
history.insertRowAfter(historyLastRow);
history.getRange(historyLastRow+1,1,1,4).setValues([[
e.parameter.id,user,(new Date()).toLocaleString(),"LOAN"
]]);
}
return redirect();
}
//redirect to glideapp
function redirect(){
return HtmlService.createHtmlOutput(
"<script>window.top.location.href='https://[Your glide app].glideapp.io/';</script>"
);
}
3.GAS를 Deploy
Publish -> Deploy as web app
Deploy는 이렇게 설정합시다.
- Execute the app:User accessing the web app
- Who has access to the app: Anyone
Deploy하면
htps : // sc pt. 오, ぇ. 코 m / 마 c로 s / s / 왓 x / 에 c
의 부분을 메모
4. Spread Sheet의 api와 qrcode 만들기
api 부분은
=CONCAT("https://script.google.com/macros/s/XXXXXX/exec?id=",C2)
qrcode는 qrserver.com을 사용하여 아래와 같이 한다
=CONCAT("https://api.qrserver.com/v1/create-qr-code/?data=",ENCODEURL(I2))
5. glideapp 만들기
h tps://.ぃ 이고 ps. 코m/
에서 "From Google Sheet"선택
죄송합니다 glide는 좀처럼 설명하기 어려워서
데모에서 살펴보십시오.
Reference
이 문제에 관하여(glideapp와 GAS로 만드는 간단한 테스트 터미널 대출 도구), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/freddiefujiwara/items/f7fbef76c9ee42e8b41b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
function doGet(e) {
//parameter validation
if(!e || !e.parameter || !e.parameter.id){
return redirect();
}
var user = Session.getActiveUser().getEmail();
var devices = SpreadsheetApp.openById("[Your spread sheet]").getSheetByName("devices");
var history = SpreadsheetApp.openById("[Your spread sheet]").getSheetByName("history");
var historyLastRow = history.getDataRange().getLastRow();
var values = devices.getDataRange().getValues();
var headers = values.shift();
var idColumn = -1;
var userColumn = -1;
var targetRow = -1;
//find id column and user column
headers.forEach(function(header,i){
if(String(header) == "id"){
idColumn = i;
}else if(String(header) == "user"){
userColumn = i;
}
});
//find target row
values.forEach(function(value,i){
if(e.parameter.id == value[idColumn]){
targetRow = i;
}
});
//validate
if(idColumn == -1 || userColumn == -1 || targetRow == -1){
return redirect();
}
//edit the sheet
var range = devices.getRange(targetRow+2,userColumn+1);
if(range.getValue() == user){
range.setValue("");
range.setBackground("white");
history.insertRowAfter(historyLastRow);
history.getRange(historyLastRow+1,1,1,4).setValues([[
e.parameter.id,user,(new Date()).toLocaleString(),"RETURN"
]]);
}else if(range.getValue() == ""){
range.setValue(user);
range.setBackground("red");
history.insertRowAfter(historyLastRow);
history.getRange(historyLastRow+1,1,1,4).setValues([[
e.parameter.id,user,(new Date()).toLocaleString(),"LOAN"
]]);
}
return redirect();
}
//redirect to glideapp
function redirect(){
return HtmlService.createHtmlOutput(
"<script>window.top.location.href='https://[Your glide app].glideapp.io/';</script>"
);
}
Publish -> Deploy as web app
Deploy는 이렇게 설정합시다.
- Execute the app:User accessing the web app
- Who has access to the app: Anyone
Deploy하면
htps : // sc pt. 오, ぇ. 코 m / 마 c로 s / s / 왓 x / 에 c
의 부분을 메모
4. Spread Sheet의 api와 qrcode 만들기
api 부분은
=CONCAT("https://script.google.com/macros/s/XXXXXX/exec?id=",C2)
qrcode는 qrserver.com을 사용하여 아래와 같이 한다
=CONCAT("https://api.qrserver.com/v1/create-qr-code/?data=",ENCODEURL(I2))
5. glideapp 만들기
h tps://.ぃ 이고 ps. 코m/
에서 "From Google Sheet"선택
죄송합니다 glide는 좀처럼 설명하기 어려워서
데모에서 살펴보십시오.
Reference
이 문제에 관하여(glideapp와 GAS로 만드는 간단한 테스트 터미널 대출 도구), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/freddiefujiwara/items/f7fbef76c9ee42e8b41b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
=CONCAT("https://script.google.com/macros/s/XXXXXX/exec?id=",C2)
=CONCAT("https://api.qrserver.com/v1/create-qr-code/?data=",ENCODEURL(I2))
h tps://.ぃ 이고 ps. 코m/
에서 "From Google Sheet"선택
죄송합니다 glide는 좀처럼 설명하기 어려워서
데모에서 살펴보십시오.
Reference
이 문제에 관하여(glideapp와 GAS로 만드는 간단한 테스트 터미널 대출 도구), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/freddiefujiwara/items/f7fbef76c9ee42e8b41b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)