Spaces:
Running
on
Zero
Running
on
Zero
/** | |
* OAuth2 service | |
*/ | |
class OAuth2 { | |
/** | |
* Constructor | |
* @param {string} clientId | |
* @param {string} clientSecret | |
*/ | |
constructor(clientId, clientSecret) { | |
this.clientId = clientId; | |
this.clientSecret = clientSecret; | |
} | |
/** | |
* Get access token | |
* @return {string} | |
*/ | |
getAccessToken() { | |
var service = OAuth2.createService('line-bot') | |
.setAuthorizationBaseUrl('https://api.line.me/oauth2/v2.1') | |
.setTokenUrl('https://api.line.me/oauth2/v2.1/token') | |
.setClientId(this.clientId) | |
.setClientSecret(this.clientSecret) | |
.setCallbackFunction('authCallback') | |
.setPropertyStore(PropertiesService.getUserProperties()); | |
return service.getAccessToken(); | |
} | |
/** | |
* Auth callback | |
* @param {object} callback | |
*/ | |
authCallback(callback) { | |
var authorized = callback.authorized; | |
if (authorized) { | |
return callback.accessToken; | |
} else { | |
var authorizationUrl = callback.authorizationUrl; | |
Logger.log('Authorization URL: %s', authorizationUrl); | |
} | |
} | |
} |