GoogleAppsScript에서 Qiita 게시물을 스프레드시트에 나열
사내에 정보를 보내기 위해 Google 사이트를 사용하고 있습니다. 최근 Qiita에 기술계의 정보를 공개하고 있는 멤버가 늘어나고 있으므로, 사내의 Google 사이트로부터 정리해 볼 수 있으면 좋다고, 사내의 Google 사이트에 Qiita의 투고를 일람 표시할 수 있는 구조를 생각하고 있다 네.
넷에서 조사하고 분명히.
Google 사이트의 GoogleAppsScript(이후, GAS)로 직접 일람을 만들고 표시하고 싶었습니다만, Google 사이트의 GAS로부터 ‘UrlFetchApp.fetch’를 하려고 하면 아무것도 대답이 오지 않고・・・
그래서 스프레드 시트의 GAS로 시도하면 데이터를 얻을 수 있었기 때문에 기록해 둡니다.
스프레드시트에 Qiita 데이터를 가져와 테이블을 만듭니다. 그리고 Google 사이트에서 스프레드시트로 데이터를 가져와서 표시하는 메커니즘을 만듭니다.
먼저 스크립트를 편집합니다.
Qiita API
여기에 다음 내용을 씁니다.
Qiita의 포스트 정보 얻기
Spreadsheet(GAS)function getQiitaData() {
var user = "user_id" /ユーザーIDを設定 /
try {
var response = UrlFetchApp.fetch('https://qiita.com/api/v2/users/' + user + '/items')
var json = response.getContentText();
var jsonData = JSON.parse(json);
Logger.log(jsonData);
return jsonData;
} catch(e){
/ 失敗した時の処理 /
var error = e;
Logger.log("message:" + error.message + " qiitaアカウントが間違っていないか確認してください。");
}
}
이것으로 투고의 정보를 전부 가져올 수 있는 하즈.
getQiitaData를 실행하면,
실행 후 로그를 확인합니다.
게시 할 정보를 GET 할 수 있습니다.
스프레드시트에 데이터 설정
그리고는, 취득한 Qiita의 투고를 스프레드 시트에 세트 해 갑니다.
Spreadsheet(GAS)function setSpread(){
/ Spreadsheetを指定 /
var sp_url = "SpreadsheetのURLをコピペ";
var spreadsheet = SpreadsheetApp.openByUrl(sp_url);
/ シート名を指定 /
var sheet = spreadsheet.getSheetByName("シート名をコピペ");
sheet.clearContents();
/ getQiitaDataを呼び出してデータ取得 /
var jsonData = getQiitaData();
if(jsonData == undefined){
Logger.log("Qiitaのアカウント確認してください。");
}else{
/ データ数チェック /
if(jsonData.length == 0){
Logger.log("今のところ投稿がありません。");
}else{
Logger.log(jsonData.length + "件のデータを取得しました。");
for(var i=0;i<jsonData.length;i++){
sheet.getRange(i+1,1).setValue(jsonData[i]["title"]); /投稿のタイトル/
sheet.getRange(i+1,2).setValue(jsonData[i]["url"]); /投稿先URL/
sheet.getRange(i+1,3).setValue(jsonData[i]["created_at"].slice(0,10)); /投稿作成日/
}
}
}
}
스프레드 시트에 게시물 (제목, URL, 작성일)이 표시되었습니다 -
다음은 이 목록을 Google 사이트에 표시합니다.
오늘은 여기까지.
Reference
이 문제에 관하여(GoogleAppsScript에서 Qiita 게시물을 스프레드시트에 나열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Yoko3/items/1f58cd646f2b44650f81
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
function getQiitaData() {
var user = "user_id" /ユーザーIDを設定 /
try {
var response = UrlFetchApp.fetch('https://qiita.com/api/v2/users/' + user + '/items')
var json = response.getContentText();
var jsonData = JSON.parse(json);
Logger.log(jsonData);
return jsonData;
} catch(e){
/ 失敗した時の処理 /
var error = e;
Logger.log("message:" + error.message + " qiitaアカウントが間違っていないか確認してください。");
}
}
그리고는, 취득한 Qiita의 투고를 스프레드 시트에 세트 해 갑니다.
Spreadsheet(GAS)
function setSpread(){
/ Spreadsheetを指定 /
var sp_url = "SpreadsheetのURLをコピペ";
var spreadsheet = SpreadsheetApp.openByUrl(sp_url);
/ シート名を指定 /
var sheet = spreadsheet.getSheetByName("シート名をコピペ");
sheet.clearContents();
/ getQiitaDataを呼び出してデータ取得 /
var jsonData = getQiitaData();
if(jsonData == undefined){
Logger.log("Qiitaのアカウント確認してください。");
}else{
/ データ数チェック /
if(jsonData.length == 0){
Logger.log("今のところ投稿がありません。");
}else{
Logger.log(jsonData.length + "件のデータを取得しました。");
for(var i=0;i<jsonData.length;i++){
sheet.getRange(i+1,1).setValue(jsonData[i]["title"]); /投稿のタイトル/
sheet.getRange(i+1,2).setValue(jsonData[i]["url"]); /投稿先URL/
sheet.getRange(i+1,3).setValue(jsonData[i]["created_at"].slice(0,10)); /投稿作成日/
}
}
}
}
스프레드 시트에 게시물 (제목, URL, 작성일)이 표시되었습니다 -
다음은 이 목록을 Google 사이트에 표시합니다.
오늘은 여기까지.
Reference
이 문제에 관하여(GoogleAppsScript에서 Qiita 게시물을 스프레드시트에 나열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Yoko3/items/1f58cd646f2b44650f81텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)