Backlog API version 2 client for Apps Script
Please check out the Nulab Developers portal page.
Clone this repository
Append your "API Key" or "OAuth2 Access Token" to requests to the API to return data. The example is in Typescript.
// 'xxx.backlog.jp' or 'xxx.backlogtool.com' or 'your package host'consthost='yourSpaceHost';constapiKey='yourApiKey';constaccessToken='yourAccessToken';// Use API Keyconstbacklog=newBacklog({ host, apikey });// Use OAuth2 Access Tokenconstbacklog=newBacklog({ host, accessToken });// Returns information about your space.backlog.getSpace().then(data=>{Logger.log('space: %s',data);}).catch(err=>{Logger.log('error: %s',err.message);});Details on the OAuth2 process are available here. See App.ts for complete source code
Here are the basic steps for OAuth2 using the Apps Script:
functiondoGet(request: RequestEvent): GoogleAppsScript.Content.TextOutput|GoogleAppsScript.HTML.HtmlOutput{letparams=request.parameter;letaction=params.action ? params.action.toLowerCase() : '';
let response: GoogleAppsScript.Content.TextOutput|GoogleAppsScript.HTML.HtmlOutput;letpropSvc=PropertiesService.getScriptProperties();letclientId=propSvc.getProperty('backlog.clientId');letclientSecret=propSvc.getProperty('backlog.clientSecret');lethost=propSvc.getProperty('backlog.host');letredirectUri=`${ScriptApp.getService().getUrl()}?action=callback`letoauth2=newOAuth2({ clientId, clientSecret });switch(action){case'login':
// KNOWN ISSUE: Backlog does not support redirect_url parameter response=redirect(oauth2.getAuthorizationURL({ host }));break;case'callback':
let code: string=params.code;response=onCallback(oauth2,host,code,redirectUri);break;default:
response=render('index',null,APP_NAME);break;}returnresponse;}functiononCallback(oauth2: OAuth2,host: string,code: string,redirectUri?: string): GoogleAppsScript.Content.TextOutput|GoogleAppsScript.HTML.HtmlOutput{try{letaccessToken: Entity.OAuth2.AccessToken;oauth2.getAccessToken({ host, code }).then(value=>accessToken=value);Logger.log('Access Token: %s',accessToken);// Save access token.letmyself: any;letbl=newBacklog({ host,accessToken: accessToken.access_token});bl.getMyself().then(value=>myself=value);Logger.log('Myself: %s',myself);letpropSvc=PropertiesService.getScriptProperties();propSvc.setProperty('backlog.accessToken',accessToken.access_token);returnrender('success',null,APP_NAME);}catch(e){Logger.log('Access Token Error: %s',e.message);returnrender('error',null,APP_NAME);}}MIT License