Freee API와 GAS를 사용하여 수지의 간이 백업 + 미결제 정보를 Task로 해 보았다.
요지
GAS를 사용하여 뭔가하고 싶다.
=>TaskAPI는 뭐야
=>이것을 사용하면 미결제 정보를 ToDO에 넣을 수 있을 것 같다
=>캘린더도 백업으로 할까.
구성
네. 간단하죠?
구현
달력편
let token="アクセストークン"
function backup_unit() {
var today=new Date()
var yesterday=new Date(today.setDate(today.getDate() - 1));
var today_re=Utilities.formatDate(today,"JST","YYYY-MM-dd");
var yesterday_re=Utilities.formatDate(yesterday,"JST","YYYY-MM-dd");
var url="https://api.freee.co.jp/api/1/deals?company_id=######&start_issue_date="+today_re+"&end_issue_date="+yesterday_re;
var res= UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + token,
},
'method': 'get',
});
res=JSON.parse(res)
var list="カテゴリ:金額"
for(var i=0;i <res.meta.total_count;i++){
var row=res.deals[i]
list=list+"\n"+row.type+"|"+row.amount+"|"+row.details[0].description
}
var calendarId = 'primary';
var start = yesterday.toISOString();
var end = yesterday.toISOString();
var event = {
summary: '支出情報',
description: list,
start: {
dateTime: start
},
end: {
dateTime: end
},
colorId: 11
};
event = Calendar.Events.insert(event, calendarId);
}
기능은 간단하게, 전날의 거래 데이터를 취득해,
그것을 메인 캘린더에 쓰는 (전날의 캘린더에)하고 있습니다.
그리고는 트리거를 하루에 두는 것만으로 완성입니다.
Todo리스트편
let token="#################################"
function countcheck() {
var today=new Date()
var today_re=Utilities.formatDate(today,"JST","YYYY-MM-dd")
var url="https://api.freee.co.jp/api/1/deals?company_id=########&status=unsettled&type=expense&start_issue_date="+today_re;
var res= UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + token,
},
'method': 'get',
});
Logger.log(JSON.parse(res))
addTask(JSON.parse(res))
}
function startup() {
var today=new Date()
var today_re=Utilities.formatDate(today,"JST","YYYY-MM-dd")
var url="https://api.freee.co.jp/api/1/deals?company_id=###########&status=unsettled&type=expense";
var res= UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + token,
},
'method': 'get',
});
addTask(JSON.parse(res))
}
let taskListId="##############################"
function addTask(res) {
for(var i=0;i <res.meta.total_count;i++){
var row=res.deals[i]
var task = {
title: "カテゴリ"+row.type+"/金額"+row.amount+"円",
notes: row.details[0].description
};
task = Tasks.Tasks.insert(task, taskListId);
}
}
function get_tasklist(){
Logger.log(Tasks.Tasklists.list())
}
이쪽도 마찬가지 데이터 취득+기입 조작으로 변함은 없다.
Startup은 처음에만 실행
get_tasklist는 Tasklistid를 얻는 데 사용됩니다.
이쪽도 Checkcount에 트리거를 세트 해 완성입니다.
기호로 데이터 취득 범위 등을 바꾸어 보면 된다고 생각합니다.
주의사항
둘 다 GAS 서비스 항목에 있는 Calender 및 Tasks를 활성화해야 합니다.
이 코드의 이용에 의한 모든 손해 등에 대하여, 당사는 보전하지 않습니다.
이 코드를 사용하는 경우에는 데이터를 보호하는 방법을 생각해 재설계해야 할 점이 있습니다.
여기에서 파생된 앱 고려사항
GAS의 WEB 어플리로서 작성해, 사내 APP로 한다.
=> 사용자 인증 대신 웹 애플리케이션에 액세스하는 사용자에서 실행하는 것이 좋습니다.
차내 사내 API화해 둔다
=> 참고로 내 방에는 간판 같은 느낌으로 최근 거래·신청 정보가 표시되는 태블릿이 있습니다.
결론
GAS의 개발은 편하고 좋다.
Reference
이 문제에 관하여(Freee API와 GAS를 사용하여 수지의 간이 백업 + 미결제 정보를 Task로 해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/haraday/items/79e42f849ac6ce9da049
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
네. 간단하죠?
구현
달력편
let token="アクセストークン"
function backup_unit() {
var today=new Date()
var yesterday=new Date(today.setDate(today.getDate() - 1));
var today_re=Utilities.formatDate(today,"JST","YYYY-MM-dd");
var yesterday_re=Utilities.formatDate(yesterday,"JST","YYYY-MM-dd");
var url="https://api.freee.co.jp/api/1/deals?company_id=######&start_issue_date="+today_re+"&end_issue_date="+yesterday_re;
var res= UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + token,
},
'method': 'get',
});
res=JSON.parse(res)
var list="カテゴリ:金額"
for(var i=0;i <res.meta.total_count;i++){
var row=res.deals[i]
list=list+"\n"+row.type+"|"+row.amount+"|"+row.details[0].description
}
var calendarId = 'primary';
var start = yesterday.toISOString();
var end = yesterday.toISOString();
var event = {
summary: '支出情報',
description: list,
start: {
dateTime: start
},
end: {
dateTime: end
},
colorId: 11
};
event = Calendar.Events.insert(event, calendarId);
}
기능은 간단하게, 전날의 거래 데이터를 취득해,
그것을 메인 캘린더에 쓰는 (전날의 캘린더에)하고 있습니다.
그리고는 트리거를 하루에 두는 것만으로 완성입니다.
Todo리스트편
let token="#################################"
function countcheck() {
var today=new Date()
var today_re=Utilities.formatDate(today,"JST","YYYY-MM-dd")
var url="https://api.freee.co.jp/api/1/deals?company_id=########&status=unsettled&type=expense&start_issue_date="+today_re;
var res= UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + token,
},
'method': 'get',
});
Logger.log(JSON.parse(res))
addTask(JSON.parse(res))
}
function startup() {
var today=new Date()
var today_re=Utilities.formatDate(today,"JST","YYYY-MM-dd")
var url="https://api.freee.co.jp/api/1/deals?company_id=###########&status=unsettled&type=expense";
var res= UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + token,
},
'method': 'get',
});
addTask(JSON.parse(res))
}
let taskListId="##############################"
function addTask(res) {
for(var i=0;i <res.meta.total_count;i++){
var row=res.deals[i]
var task = {
title: "カテゴリ"+row.type+"/金額"+row.amount+"円",
notes: row.details[0].description
};
task = Tasks.Tasks.insert(task, taskListId);
}
}
function get_tasklist(){
Logger.log(Tasks.Tasklists.list())
}
이쪽도 마찬가지 데이터 취득+기입 조작으로 변함은 없다.
Startup은 처음에만 실행
get_tasklist는 Tasklistid를 얻는 데 사용됩니다.
이쪽도 Checkcount에 트리거를 세트 해 완성입니다.
기호로 데이터 취득 범위 등을 바꾸어 보면 된다고 생각합니다.
주의사항
둘 다 GAS 서비스 항목에 있는 Calender 및 Tasks를 활성화해야 합니다.
이 코드의 이용에 의한 모든 손해 등에 대하여, 당사는 보전하지 않습니다.
이 코드를 사용하는 경우에는 데이터를 보호하는 방법을 생각해 재설계해야 할 점이 있습니다.
여기에서 파생된 앱 고려사항
GAS의 WEB 어플리로서 작성해, 사내 APP로 한다.
=> 사용자 인증 대신 웹 애플리케이션에 액세스하는 사용자에서 실행하는 것이 좋습니다.
차내 사내 API화해 둔다
=> 참고로 내 방에는 간판 같은 느낌으로 최근 거래·신청 정보가 표시되는 태블릿이 있습니다.
결론
GAS의 개발은 편하고 좋다.
Reference
이 문제에 관하여(Freee API와 GAS를 사용하여 수지의 간이 백업 + 미결제 정보를 Task로 해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/haraday/items/79e42f849ac6ce9da049
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let token="アクセストークン"
function backup_unit() {
var today=new Date()
var yesterday=new Date(today.setDate(today.getDate() - 1));
var today_re=Utilities.formatDate(today,"JST","YYYY-MM-dd");
var yesterday_re=Utilities.formatDate(yesterday,"JST","YYYY-MM-dd");
var url="https://api.freee.co.jp/api/1/deals?company_id=######&start_issue_date="+today_re+"&end_issue_date="+yesterday_re;
var res= UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + token,
},
'method': 'get',
});
res=JSON.parse(res)
var list="カテゴリ:金額"
for(var i=0;i <res.meta.total_count;i++){
var row=res.deals[i]
list=list+"\n"+row.type+"|"+row.amount+"|"+row.details[0].description
}
var calendarId = 'primary';
var start = yesterday.toISOString();
var end = yesterday.toISOString();
var event = {
summary: '支出情報',
description: list,
start: {
dateTime: start
},
end: {
dateTime: end
},
colorId: 11
};
event = Calendar.Events.insert(event, calendarId);
}
let token="#################################"
function countcheck() {
var today=new Date()
var today_re=Utilities.formatDate(today,"JST","YYYY-MM-dd")
var url="https://api.freee.co.jp/api/1/deals?company_id=########&status=unsettled&type=expense&start_issue_date="+today_re;
var res= UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + token,
},
'method': 'get',
});
Logger.log(JSON.parse(res))
addTask(JSON.parse(res))
}
function startup() {
var today=new Date()
var today_re=Utilities.formatDate(today,"JST","YYYY-MM-dd")
var url="https://api.freee.co.jp/api/1/deals?company_id=###########&status=unsettled&type=expense";
var res= UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + token,
},
'method': 'get',
});
addTask(JSON.parse(res))
}
let taskListId="##############################"
function addTask(res) {
for(var i=0;i <res.meta.total_count;i++){
var row=res.deals[i]
var task = {
title: "カテゴリ"+row.type+"/金額"+row.amount+"円",
notes: row.details[0].description
};
task = Tasks.Tasks.insert(task, taskListId);
}
}
function get_tasklist(){
Logger.log(Tasks.Tasklists.list())
}
둘 다 GAS 서비스 항목에 있는 Calender 및 Tasks를 활성화해야 합니다.
이 코드의 이용에 의한 모든 손해 등에 대하여, 당사는 보전하지 않습니다.
이 코드를 사용하는 경우에는 데이터를 보호하는 방법을 생각해 재설계해야 할 점이 있습니다.
여기에서 파생된 앱 고려사항
GAS의 WEB 어플리로서 작성해, 사내 APP로 한다.
=> 사용자 인증 대신 웹 애플리케이션에 액세스하는 사용자에서 실행하는 것이 좋습니다.
차내 사내 API화해 둔다
=> 참고로 내 방에는 간판 같은 느낌으로 최근 거래·신청 정보가 표시되는 태블릿이 있습니다.
결론
GAS의 개발은 편하고 좋다.
Reference
이 문제에 관하여(Freee API와 GAS를 사용하여 수지의 간이 백업 + 미결제 정보를 Task로 해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/haraday/items/79e42f849ac6ce9da049
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
GAS의 개발은 편하고 좋다.
Reference
이 문제에 관하여(Freee API와 GAS를 사용하여 수지의 간이 백업 + 미결제 정보를 Task로 해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/haraday/items/79e42f849ac6ce9da049텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)