Javascript 应用程序脚本-谷歌表单-API调用-令牌头语法有问题
不确定如何对此的标头承载令牌部分进行语法分析Javascript 应用程序脚本-谷歌表单-API调用-令牌头语法有问题,javascript,json,google-apps-script,bearer-token,urlfetch,Javascript,Json,Google Apps Script,Bearer Token,Urlfetch,不确定如何对此的标头承载令牌部分进行语法分析 //-------------------------------------------------------------------------------------------------- // //Google Sheets中的iTunes音乐发现应用程序 // // ------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//
//Google Sheets中的iTunes音乐发现应用程序
//
// --------------------------------------------------------------------------------------------------
//自定义菜单
函数onOpen(){
var ui=SpreadsheetApp.getUi();
ui.createMenu('iTunesAPI调用')
.addItem('获取艺术家数据','displayArtistData')
.addToUi();
}
//函数调用iTunesAPI
函数calliTunesAPI(艺术家){
//调用iTunesAPI
var response=UrlFetchApp.fetch(“https://api.music.apple.com/v1/catalog/us/music-videos/{“+艺术家+”}”);
--标题“内容类型:应用程序/json”\
--标题“授权:持票人EYJHBGCIOIJFUZI1NIISINR5CCI6IKPXVCIISIMTPZI6IJVWNJY3ZEZANJMIFQ.EYJPC3MIOIJ0QVE5Q1Q3IIEOWO”
//解析JSON回复
var json=response.getContentText();
返回JSON.parse(JSON);
}
函数displayArtistData(){
//从谷歌表单中选择搜索词
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getActiveSheet();
var artist=sheet.getRange(11,3).getValue();
var轨道=calliTunesAPI(艺术家);
var结果=轨道[“结果”];
变量输出=[]
结果.forEach(函数(elem,i){
var image='=image(“'+elem[“artworkUrl60”]+'”,4,60,60)”;
var hyperlink='=hyperlink('+elem[“previewUrl”]+',“收听预览”);
push([elem[“artistName”]、elem[“collectionName”]、elem[“trackName”]、image、hyperlink]);
表1.设置行高(i+15,65);
});
//按相册排序
var sortedOutput=output.sort(函数(a,b){
var albumA=(a[1])?a[1]:“未知”;//如果唱片集名称未定义
var albumB=(b[1])?b[1]:“未知”;//如果唱片集名称未定义
if(albumAalbumB){
返回1;
}
//名字是平等的
返回0;
});
//将索引号添加到数组中
sortedOutput.forEach(功能(元素,i){
元素取消移位(i+1);
});
var len=分拣输出长度;
//清除以前的任何内容
sheet.getRange(15,1500,6).clearContent();
//粘贴值
表.getRange(15,1,len,6).设置值(sortedOutput);
//格式化
表1.getRange(15,1500,6).设置垂直对齐(“中间”);
表1.getRange(15,5500,1).setHorizontalAlignment(“中心”);
表.getRange(15,2,len,3).setWrap(true);
}
这部分代码不起作用:
--标题“内容类型:应用程序/json”--标头授权:持有人EYJHBGCIOIJFUZI1NIISINR5CCI6IKPXVCIISIMTPZI6IJVWNJY3SezanMifQ.EYJPC3MIOIJ0QVE5Q1Q3IIEOWO
不知道如何正确地语法。我确定这是101,但不确定答案。以此为例,您应该能够更新代码。祝你好运
var url = "https://www.example.com"
var headers = {
"Authorization": "Bearer ijfewfkjsfkjh4543",
"Content-Type": "Application/json"
};
var options = {
"method" : "get",
"headers" : headers
};
var response = UrlFetchApp.fetch(url, options);
编辑:这应该可以,但是API已经关闭了。您可以删除var艺术家。但我需要一个号码;)
您可能想看看
UrlFetchApp
文档
UrlFetchApp
的作用是获取资源并通过internet与其他主机通信。由于您希望检索一些数据,因此在发出请求时基本上必须包括承载
和头
考虑到所有这些因素,您可以将函数重写为:
function calliTunesAPI(artist) {
var url = "https://api.music.apple.com/v1/catalog/us/music-videos/{" + artist + "}";
var params = {
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjVWNjY3SEZaNjMifQ.eyJpc3MiOiJTOTU0QVE5Q1Q3IieOwO"
}
"method": "GET"
}
var response = UrlFetchApp(url, params);
var json = response.getContentText();
return JSON.parse(json);
}
参考文献
function calliTunesAPI(artist) {
var artist = 178834;
var url = "api.music.apple.com/v1/catalog/us/music-videos"+artist;
var headers = { "Authorization": "Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjVWNjY3SEZaNjMifQ.eyJpc3MiOiJTOTU0QVE5Q1Q3IieOwO",
"Content-Type": "Application/json"
};
var options = {
"method": "get",
"headers": headers,
"muteHttpExceptions": true
};
var response = UrlFetchApp.fetch(url, options).getContentText();
var json = JSON.parse(response);
console.log(json);
}
function calliTunesAPI(artist) {
var url = "https://api.music.apple.com/v1/catalog/us/music-videos/{" + artist + "}";
var params = {
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjVWNjY3SEZaNjMifQ.eyJpc3MiOiJTOTU0QVE5Q1Q3IieOwO"
}
"method": "GET"
}
var response = UrlFetchApp(url, params);
var json = response.getContentText();
return JSON.parse(json);
}