1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GASからBacklog apiで情報取得してVueで表示

Posted at

GASからBacklog apiで情報取得してVueで表示

html表示するGASの部分

function doGet() {
  var htmlOutput = HtmlService.createTemplateFromFile("index").evaluate();
  htmlOutput
    .setTitle('GAS+Vue.js')
    .addMetaTag('viewport', 'width=device-width, initial-scale=1')
  return htmlOutput;
}

html表示部分(index.html)

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <?!= HtmlService.createHtmlOutputFromFile('css').getContent(); ?>
  </head>
  <body>
    <div id="app">
      <h2>{{ tocTitle }}</h2>
      <p>{{ tocDescription }}</p>
      <ol>
        <li v-for="list in lists"><a :href="list[1]">{{ list[0] }}</a>
          <span>{{list[1]}}</span>
          <span>{{list[2]}}</span>
          <span>{{list[3]}}</span>
          <span>{{list[4]}}</span>
          <span>{{list[5]}}</span>
          <span>{{list[6]}}</span>
          <span>{{list[7]}}</span>
          <span>{{list[8]}}</span>
        </li>
      </ol>
    </div>
    <?!= HtmlService.createHtmlOutputFromFile('js').getContent(); ?>
  </body>
</html>

vueの部分 .js

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script>
google.script.run.withSuccessHandler(initializeVue).getSpreadsheetValues();

function initializeVue(values){
  values.shift();
  
  new Vue({
    el: '#app',
    data: {
      tocTitle: 'Backlog',
      tocDescription: 'hogehoge',
      lists: values
    }
  });
}
</script>

GASバックログapi呼び出し部分

function myFunction() {
  var space_id   = 'bokeboek';
  var api_key    = "hogehogheogeho"
  var response   = UrlFetchApp.fetch("https://"+space_id+".backlog.jp/api/v2/issues?apiKey="+api_key);
 
  if (response.getResponseCode() != 200) {
      return false;
  }
  
  var spread_sheet_id   = 'XXXXXXXXX';
    var target_sheet_name = 'hoge'
    var target_sheet      = SpreadsheetApp.openById(spread_sheet_id).getSheetByName(target_sheet_name);
  
  //取得
  var issue_list = JSON.parse(response.getContentText());
  Object.keys(issue_list).forEach(function(id, idx) {
    const issue = issue_list[id]
    const row = idx + 2
    target_sheet.getRange(row, 1).setValue(issue.issueType.name)
    target_sheet.getRange(row, 2).setValue(issue.summary)
    target_sheet.getRange(row, 3).setValue(issue.assignee ? issue.assignee.name : '')
    target_sheet.getRange(row, 4).setValue(issue.status.name)
    target_sheet.getRange(row, 5).setValue(issue.priority.name)
    target_sheet.getRange(row, 6).setValue(issue.created)
    target_sheet.getRange(row, 7).setValue(issue.dueDate)
    target_sheet.getRange(row, 8).setValue(issue.updated)
    target_sheet.getRange(row, 9).setValue(issue.createdUser.name)
  })
}

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?