首页 > 解决方案 > 使用 UrlFetchApp.fetch() 函数获取 Looker API 访问令牌并获取超时错误

问题描述

我想获取访问令牌以访问 Looker 登录页面。运行此代码时出现超时错误:

function getToken() {
var authPayload = {
    "client_id" : getProperty('authClientId'),
    "client_secret" : getProperty('authClientSecret')

};

Logger.log(authPayload);

var authOptions = {
    "method" : "post",
    "payload" : authPayload
};

Logger.log(authOptions);

var endpoint = getProperty('apiEndpoint');
Logger.log(endpoint); 

var authResponseFull = UrlFetchApp.fetch(endpoint + "/login", authOptions);

Logger.log(authResponseFull);
var authResponseJSON = JSON.parse(authResponseFull.getContentText());
Logger.log(authResponseJSON);
return authResponseJSON.access_token;
}

错误日志:

[19-11-08 09:19:37:278 PST] {client_id=xcx64, client_secret=*****ghgGN}
[19-11-08 09:19:37:281 PST] {payload={client_id=xcx64, 
client_secret=*****ghgGN}, method=post}
[19-11-08 09:19:37:291 PST] https://abc.looker.com:19999
[19-11-08 09:20:07:281 PST] Exception: Timeout: 
https://abc.looker.com:19999/login
at getToken(Code:134:38)

我也用硬编码值试过这个,但仍然得到同样的错误:

var authResponseFull = 
UrlFetchApp.fetch("https://abc.looker.com:19999/login", 
                                       {
                                         'method' : 'post',
                                         'contentType' : 'application/json',
                                         'headers' : {'Api-key' : 'client_id=xcx64&client_secret=*****ghgGN'},
                                         'payload' : JSON.stringify(authPayload),

                                       });

标签: google-apps-script

解决方案


推荐阅读