UrlFetchApp 令牌授权
UrlFetchApp Token Authorization
我正在尝试使用 GScript 的 UrlFetchApp 获取 URL。 URL 需要在请求中传递令牌 API 密钥 header。
url = 'https://freshsales.io/search?q=abc';
var options = {
'method' : 'get',
'headers':{
'Authorization': "Token token=XYZ"
}
};
var response = UrlFetchApp.fetch(url, options);
这没有给我带来预期的响应,如下所示:
Freshsales
window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"","applicationID":"33348835,33348834","transactionName":"e11YEBQJXVlXER1LUllAVQxJFVRUQABaF0RdU0QHDg==","queueTime":1,"applicationTime":30,"agent":""}
(window.NREUM||(NREUM={})).loader_config={xpid:"VQcDVl5UDxADV1JWDwkEUw==",licenseKey:"",applicationID:"33348835"};window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function
r(e){if(!n[e]){var
o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var
o=t[e][1][n];return r(o||n)},o,o.exports)}return
n[e].exports}if("function"==typeof __nr_require)return
__nr_require;for(var o=0;o0&&(p-=1)}),s.on("internal-error",function(t){i("ierr",[t,c.now(),!0])})},{}],3:[function(t,n,e){t("loader").features.ins=!0},{}],4:[function(t,n,e){function
r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var
o=t("ee"),i=t("handle"),a=t(9),s=t(8),c="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,w="fn"+h,v="bstTimer",g="pushState",y=t("loader");y.features.stn=!0,t(7),"addEventListener"in window&&t(5);var x=NREUM.o.EV;o.on(m,function(t,n){var e=t[0];e
instanceof x&&(this.bstStart=y.now())}),o.on(w,function(t,n){var
e=t[0];e instanceof
x&&i("bst",[e,n,this.bstStart,y.now()])}),a.on(m,function(t,n,e){this.bstStart=y.now(),this.bstType=e}),a.on(w,function(t,n){i(v,[n,this.bstStart,y.now(),this.bstType])}),s.on(m,function(){this.bstStart=y.now()}),s.on(w,function(t,n){i(v,[n,this.bstStart,y.now(),"requestAnimationFrame"])}),o.on(g+p,function(t){this.time=y.now(),this.startPath=location.pathname+location.hash}),o.on(g+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f
in
window.performance&&(window.performance["c"+c]?window.performancef:window.performancef),documentf,documentf,documentf}},{}],5:[function(t,n,e){function
r(t){for(var
n=t;n&&!n.hasOwnProperty(u);)n=Object.getPrototypeOf(n);n&&o(n)}function
o(t){s.inPlace(t,[u,d],"-",i)}function i(t,n){return t[1]}var
a=t("ee").get("events"),s=t("wrap-function")(a,!0),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";n.exports=a,"getPrototypeOf"in
Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,n){var
e=t[1],r=c(e,"nr@wrapped",function(){function
t(){if("function"==typeof e.handleEvent)return
e.handleEvent.apply(e,arguments)}var n={object:t,"function":e}[typeof
e];return
n?s(n,"fn-",null,n.name||"anonymous"):e});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],6:[function(t,n,e){function
r(t,n,e){var r=t[n];"function"==typeof r&&(t[n]=function(){var
t=i(arguments),n={};o.emit(e+"before-start",[t],n);var
a;n[m]&&n[m].dt&&(a=n[m].dt);var s=r.apply(this,t);return
o.emit(e+"start",[t,a],s),s.then(function(t){return
o.emit(e+"end",[null,t],s),t},function(t){throw
o.emit(e+"end",[t],s),t})})}var
o=t("ee").get("fetch"),i=t(22),a=t(21);n.exports=o;var
s=window,c="fetch-",f=c+"body-",u=["arrayBuffer","blob","json","text","formData"],d=s.Request,l=s.Response,p=s.fetch,h="prototype",m="nr@context";d&&l&&p&&(a(u,function(t,n){r(d[h],n,f),r(l[h],n,f)}),r(s,"fetch",c),o.on(c+"end",function(t,n){var
e=this;if(n){var
r=n.headers.get("content-length");null!==r&&(e.rxSize=r),o.emit(c+"done",[null,n],e)}else
o.emit(c+"done",[t],e)}))},{}],7:[function(t,n,e){var
r=t("ee").get("history"),o=t("wrap-function")(r);n.exports=r;var
i=window.history&&window.history.constructor&&window.history.constructor.prototype,a=window.history;i&&i.pushState&&i.replaceState&&(a=i),o.inPlace(a,["pushState","replaceState"],"-")},{}],8:[function(t,n,e){var
r=t("ee").get("raf"),o=t("wrap-function")(r),i="equestAnimationFrame";n.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],9:[function(t,n,e){function
r(t,n,e){t[0]=a(t[0],"fn-",null,e)}function
o(t,n,e){this.method=e,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,e)}var
i=t("ee").get("timer"),a=t("wrap-function")(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";n.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],10:[function(t,n,e){function
r(t,n){d.inPlace(n,["onreadystatechange"],"fn-",s)}function o(){var
t=this,n=u.context(t);t.readyState>3&&!n.resolved&&(n.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,g,"fn-",s)}function
i(t){y.push(t),h&&(b?b.then(a):w?w(a):(E=-E,O.data=E))}function
a(){for(var t=0;t
我通过 python(下面的代码)进行了同样的测试,它运行良好。
url = "https://freshsales.io/search?q=abe"
payload = {}
headers = {
'Authorization': 'Token token=XYZ'
}
response = requests.request("GET", url, headers=headers, data = payload)
来自 Python 代码的响应:
[
{
"id": "1000705745",
"name": "MKnight",
"email": "mknight@xxx.gov",
"owner": {
"id": 1000002014,
"name": "Tim"
},
"updated_at": "2020-02-13T04:57:29Z",
"primary_sales_account_name": "City of XYZ",
"type": "contact"
} ]
关于我在这里可能遗漏的任何想法?
添加您可以接受的内容类型以强制从服务器返回内容类型:
headers:{
Accept: "application/json",
Authorization: "Token token=XYZ"
}
我正在尝试使用 GScript 的 UrlFetchApp 获取 URL。 URL 需要在请求中传递令牌 API 密钥 header。
url = 'https://freshsales.io/search?q=abc';
var options = {
'method' : 'get',
'headers':{
'Authorization': "Token token=XYZ"
}
};
var response = UrlFetchApp.fetch(url, options);
这没有给我带来预期的响应,如下所示:
Freshsales
window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"","applicationID":"33348835,33348834","transactionName":"e11YEBQJXVlXER1LUllAVQxJFVRUQABaF0RdU0QHDg==","queueTime":1,"applicationTime":30,"agent":""}(window.NREUM||(NREUM={})).loader_config={xpid:"VQcDVl5UDxADV1JWDwkEUw==",licenseKey:"",applicationID:"33348835"};window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function r(e){if(!n[e]){var o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var o=t[e][1][n];return r(o||n)},o,o.exports)}return n[e].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o0&&(p-=1)}),s.on("internal-error",function(t){i("ierr",[t,c.now(),!0])})},{}],3:[function(t,n,e){t("loader").features.ins=!0},{}],4:[function(t,n,e){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var o=t("ee"),i=t("handle"),a=t(9),s=t(8),c="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,w="fn"+h,v="bstTimer",g="pushState",y=t("loader");y.features.stn=!0,t(7),"addEventListener"in window&&t(5);var x=NREUM.o.EV;o.on(m,function(t,n){var e=t[0];e instanceof x&&(this.bstStart=y.now())}),o.on(w,function(t,n){var e=t[0];e instanceof x&&i("bst",[e,n,this.bstStart,y.now()])}),a.on(m,function(t,n,e){this.bstStart=y.now(),this.bstType=e}),a.on(w,function(t,n){i(v,[n,this.bstStart,y.now(),this.bstType])}),s.on(m,function(){this.bstStart=y.now()}),s.on(w,function(t,n){i(v,[n,this.bstStart,y.now(),"requestAnimationFrame"])}),o.on(g+p,function(t){this.time=y.now(),this.startPath=location.pathname+location.hash}),o.on(g+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f in window.performance&&(window.performance["c"+c]?window.performancef:window.performancef),documentf,documentf,documentf}},{}],5:[function(t,n,e){function r(t){for(var n=t;n&&!n.hasOwnProperty(u);)n=Object.getPrototypeOf(n);n&&o(n)}function o(t){s.inPlace(t,[u,d],"-",i)}function i(t,n){return t[1]}var a=t("ee").get("events"),s=t("wrap-function")(a,!0),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";n.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,n){var e=t[1],r=c(e,"nr@wrapped",function(){function t(){if("function"==typeof e.handleEvent)return e.handleEvent.apply(e,arguments)}var n={object:t,"function":e}[typeof e];return n?s(n,"fn-",null,n.name||"anonymous"):e});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],6:[function(t,n,e){function r(t,n,e){var r=t[n];"function"==typeof r&&(t[n]=function(){var t=i(arguments),n={};o.emit(e+"before-start",[t],n);var a;n[m]&&n[m].dt&&(a=n[m].dt);var s=r.apply(this,t);return o.emit(e+"start",[t,a],s),s.then(function(t){return o.emit(e+"end",[null,t],s),t},function(t){throw o.emit(e+"end",[t],s),t})})}var o=t("ee").get("fetch"),i=t(22),a=t(21);n.exports=o;var s=window,c="fetch-",f=c+"body-",u=["arrayBuffer","blob","json","text","formData"],d=s.Request,l=s.Response,p=s.fetch,h="prototype",m="nr@context";d&&l&&p&&(a(u,function(t,n){r(d[h],n,f),r(l[h],n,f)}),r(s,"fetch",c),o.on(c+"end",function(t,n){var e=this;if(n){var r=n.headers.get("content-length");null!==r&&(e.rxSize=r),o.emit(c+"done",[null,n],e)}else o.emit(c+"done",[t],e)}))},{}],7:[function(t,n,e){var r=t("ee").get("history"),o=t("wrap-function")(r);n.exports=r;var i=window.history&&window.history.constructor&&window.history.constructor.prototype,a=window.history;i&&i.pushState&&i.replaceState&&(a=i),o.inPlace(a,["pushState","replaceState"],"-")},{}],8:[function(t,n,e){var r=t("ee").get("raf"),o=t("wrap-function")(r),i="equestAnimationFrame";n.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],9:[function(t,n,e){function r(t,n,e){t[0]=a(t[0],"fn-",null,e)}function o(t,n,e){this.method=e,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,e)}var i=t("ee").get("timer"),a=t("wrap-function")(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";n.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],10:[function(t,n,e){function r(t,n){d.inPlace(n,["onreadystatechange"],"fn-",s)}function o(){var t=this,n=u.context(t);t.readyState>3&&!n.resolved&&(n.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,g,"fn-",s)}function i(t){y.push(t),h&&(b?b.then(a):w?w(a):(E=-E,O.data=E))}function a(){for(var t=0;t
我通过 python(下面的代码)进行了同样的测试,它运行良好。
url = "https://freshsales.io/search?q=abe"
payload = {}
headers = {
'Authorization': 'Token token=XYZ'
}
response = requests.request("GET", url, headers=headers, data = payload)
来自 Python 代码的响应:
[
{
"id": "1000705745",
"name": "MKnight",
"email": "mknight@xxx.gov",
"owner": {
"id": 1000002014,
"name": "Tim"
},
"updated_at": "2020-02-13T04:57:29Z",
"primary_sales_account_name": "City of XYZ",
"type": "contact"
} ]
关于我在这里可能遗漏的任何想法?
添加您可以接受的内容类型以强制从服务器返回内容类型:
headers:{
Accept: "application/json",
Authorization: "Token token=XYZ"
}