Doo*_*oom 3 spreadsheet google-sheets google-apps-script google-sheets-api
我试图发出 GET 请求,但根据 API 的文档,它需要额外的参数才能让我访问数据。我搜索了如何params使用发送UrlFetch,并找到了主要讨论在非请求中发送参数的文档。POSTGET
我已经发送了Authentication 请求Headers,但我想发送额外的参数。UrlFetch
那么有没有一种简单的方法可以做到这一点呢?
下面是我正在做的事情和我想要做的事情的示例。
我的代码:
const someService = authorize();
let response = UrlFetchApp.fetch('https://www.webSite.com/api/teams.json', {
headers: {
// Sending access token in the request
Authorization: 'Bearer ' + someService.getAccessToken()
}
});
Run Code Online (Sandbox Code Playgroud)
我想做的事
const someService = authorize();
let response = UrlFetchApp.fetch('https://www.webSite.com/api/teams.json', {
headers: {
Authorization: 'Bearer ' + someService.getAccessToken()
},
parameters:{
'teamId': 1234
}
});
// URL should be like that: https://www.webSite.com/api/teams.json?access_token=1234abc&teamId=1234
Run Code Online (Sandbox Code Playgroud)
遗憾的是,UrlFetchApp 类没有内置方法来自动从对象生成 URL 搜索参数。但 Google 在其OAuth2 库中提供了一个您可以复制的:
function sendRequest() {
const someService = authorize();
let baseUrl = 'https://www.webSite.com/api/teams.json';
let params = {
'access_token': someService.getAccessToken(),
'teamId': 1234
};
let response = UrlFetchApp.fetch(buildUrl_(baseUrl, params));
}
/**
* Builds a complete URL from a base URL and a map of URL parameters.
* @param {string} url The base URL.
* @param {Object.<string, string>} params The URL parameters and values.
* @return {string} The complete URL.
* @private
*/
function buildUrl_(url, params) {
var paramString = Object.keys(params).map(function(key) {
return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);
}).join('&');
return url + (url.indexOf('?') >= 0 ? '&' : '?') + paramString;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3881 次 |
| 最近记录: |