В настоящее время у меня возникла проблема при работе с API через Google AppScript.
Я могу запросить API и получить результат, но мне нужно перехватить указанный c заголовок ( ссылка), которая содержит ключ для использования во втором запросе.
Я использую метод getAllHeaders () из HTTPResponse Class , но, очевидно, целевой заголовок отсутствует.
У вас есть идеи, как получить этот заголовок?
Вот мой код:
function callShopify (action, productId, secondId) {
var apiInfo = getShopifyFunction(action);
var baseApiUrl = apiInfo[0];
var functionUrl = apiInfo[1];
var extension = apiInfo[2];
var header = {'X-Shopify-Access-Token': getShopifyApiPass()};
var options = {
'method' : apiInfo[3],
'headers' : header,
'muteHttpExceptions' : true
};
var finalUrl = getShopifyWebsite() + baseApiUrl + productId + functionUrl + secondId + extension+"?limit=250";
var lock = LockService.getScriptLock();
lock.waitLock(1000); // lock 1 second
var response = UrlFetchApp.fetch(finalUrl, options);
var test = response.getAllHeaders();
Logger.log(JSON.stringify(response.getAllHeaders()));
Logger.log(JSON.stringify(response.getHeaders()));
lock.releaseLock();
return (JSON.parse(response));
}
Вот заголовки, которые возвращаются методом AppScript:
Как видите, заголовок "link" отсутствует.
Чтобы убедиться, что проблема возникла из AppScript, я также проверил из Chrome Инспектор:
JSON Результат для метода getAllHeaders и getHeader:
{
"Date":"Fri, 13 Mar 2020 18:36:47 GMT",
"alt-svc":"h3-27=\":443\"; ma=86400, h3-25=\":443\"; ma=86400, h3-24=\":443\"; ma=86400, h3-23=\":443\"; ma=86400",
"Connection":"keep-alive",
"x-sorting-hat-podid":"96",
"X-Download-Options":"noopen",
"x-shardid":"96",
"x-sorting-hat-shopid":"10366451809",
"Referrer-Policy":"origin-when-cross-origin",
"x-shopify-api-version":"2020-01",
"x-shopid":"10366451809",
"X-XSS-Protection":"1; mode=block; report=/xss-report?source%5Baction%5D=index&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fproducts&source%5Bsection%5D=admin_api&source%5Buuid%5D=86c9a9d7-96cd-4971-b1a6-57112df95a66",
"X-Content-Type-Options":"nosniff",
"x-shopify-stage":"production",
"Vary":"Accept-Encoding",
"Content-Encoding":"gzip",
"Content-Security-Policy":"default-src 'self' data: blob: 'unsafe-inline' 'unsafe-eval' https://* shopify-pos://*; block-all-mixed-content; child-src 'self' https://* shopify-pos://*; connect-src 'self' wss://* https://*; frame-ancestors 'none'; img-src 'self' data: blob: https:; script-src https://cdn.shopify.com https://cdn.shopify.cn https://checkout.shopifycs.com https://js-agent.newrelic.com https://bam.nr-data.net https://api.stripe.com https://mpsnare.iesnare.com https://appcenter.intuit.com https://www.paypal.com https://js.braintreegateway.com https://c.paypal.com https://maps.googleapis.com https://www.google-analytics.com https://v.shopify.com https://widget.intercom.io https://js.intercomcdn.com 'self' 'unsafe-inline' 'unsafe-eval'; upgrade-insecure-requests; report-uri /csp-report?source%5Baction%5D=index&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fproducts&source%5Bsection%5D=admin_api&source%5Buuid%5D=86c9a9d7-96cd-4971-b1a6-57112df95a66",
"x-shopify-api-terms":"By accessing or using the Shopify API you agree to the Shopify API License and Terms of Use at https://www.shopify.com/legal/api-terms",
"Strict-Transport-Security":"max-age=7889238",
"cf-cache-status":"DYNAMIC",
"x-permitted-cross-domain-policies":"none",
"expect-ct":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\"",
"x-shopify-shop-api-call-limit":"1/40",
"x-stats-apipermissionid":"203626283105",
"Report-To":[
"{\"group\":\"network-errors\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://monorail-edge.shopifycloud.com/v1/reports/nel/20190325/shopify\"}]}",
"{\"group\":\"network-errors\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://monorail-edge.shopifycloud.com/v1/reports/nel/20190325/shopify\"}]}"
],
"Content-Type":"application/json; charset=utf-8",
"x-stats-userid":"",
"Transfer-Encoding":"chunked",
"x-dc":"gcp-us-east1,gcp-us-central1,gcp-us-central1",
"x-request-id":"86c9a9d7-96cd-4971-b1a6-57112df95a66",
"Server":"cloudflare",
"http_x_shopify_shop_api_call_limit":"1/40",
"cf-ray":"5737dcc7198ff381-ATL",
"Set-Cookie":"__cfduid=d9afe6e8299af1521516fd6a8cfa91f271584124606; expires=Sun, 12-Apr-20 18:36:46 GMT; path=/; domain=.myshopify.com; HttpOnly; SameSite=Lax",
"X-Frame-Options":"DENY",
"x-stats-apiclientid":"3403993",
"nel":[
"{\"report_to\":\"network-errors\",\"max_age\":2592000,\"failure_fraction\":0.01,\"success_fraction\":0.0001}",
"{\"report_to\":\"network-errors\",\"max_age\":2592000,\"failure_fraction\":0.01,\"success_fraction\":0.0001}"
]
}[
20-03-13 19: 36: 47: 382 CET
]{
"x-stats-apiclientid":"3403993",
"nel":"{\"report_to\":\"network-errors\",\"max_age\":2592000,\"failure_fraction\":0.01,\"success_fraction\":0.0001}",
"Date":"Fri, 13 Mar 2020 18:36:47 GMT",
"alt-svc":"h3-27=\":443\"; ma=86400, h3-25=\":443\"; ma=86400, h3-24=\":443\"; ma=86400, h3-23=\":443\"; ma=86400",
"Connection":"keep-alive",
"x-sorting-hat-podid":"96",
"X-Download-Options":"noopen",
"x-shardid":"96",
"x-sorting-hat-shopid":"10366451809",
"Referrer-Policy":"origin-when-cross-origin",
"x-shopify-api-version":"2020-01",
"x-shopid":"10366451809",
"X-XSS-Protection":"1; mode=block; report=/xss-report?source%5Baction%5D=index&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fproducts&source%5Bsection%5D=admin_api&source%5Buuid%5D=86c9a9d7-96cd-4971-b1a6-57112df95a66",
"X-Content-Type-Options":"nosniff",
"x-shopify-stage":"production",
"Vary":"Accept-Encoding",
"Content-Encoding":"gzip",
"Content-Security-Policy":"default-src 'self' data: blob: 'unsafe-inline' 'unsafe-eval' https://* shopify-pos://*; block-all-mixed-content; child-src 'self' https://* shopify-pos://*; connect-src 'self' wss://* https://*; frame-ancestors 'none'; img-src 'self' data: blob: https:; script-src https://cdn.shopify.com https://cdn.shopify.cn https://checkout.shopifycs.com https://js-agent.newrelic.com https://bam.nr-data.net https://api.stripe.com https://mpsnare.iesnare.com https://appcenter.intuit.com https://www.paypal.com https://js.braintreegateway.com https://c.paypal.com https://maps.googleapis.com https://www.google-analytics.com https://v.shopify.com https://widget.intercom.io https://js.intercomcdn.com 'self' 'unsafe-inline' 'unsafe-eval'; upgrade-insecure-requests; report-uri /csp-report?source%5Baction%5D=index&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fproducts&source%5Bsection%5D=admin_api&source%5Buuid%5D=86c9a9d7-96cd-4971-b1a6-57112df95a66",
"x-shopify-api-terms":"By accessing or using the Shopify API you agree to the Shopify API License and Terms of Use at https://www.shopify.com/legal/api-terms",
"Strict-Transport-Security":"max-age=7889238",
"cf-cache-status":"DYNAMIC",
"x-permitted-cross-domain-policies":"none",
"expect-ct":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\"",
"x-shopify-shop-api-call-limit":"1/40",
"x-stats-apipermissionid":"203626283105",
"Report-To":"{\"group\":\"network-errors\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://monorail-edge.shopifycloud.com/v1/reports/nel/20190325/shopify\"}]}",
"Content-Type":"application/json; charset=utf-8",
"x-stats-userid":"",
"Transfer-Encoding":"chunked",
"x-dc":"gcp-us-east1,gcp-us-central1,gcp-us-central1",
"x-request-id":"86c9a9d7-96cd-4971-b1a6-57112df95a66",
"Server":"cloudflare",
"http_x_shopify_shop_api_call_limit":"1/40",
"cf-ray":"5737dcc7198ff381-ATL",
"Set-Cookie":"__cfduid=d9afe6e8299af1521516fd6a8cfa91f271584124606; expires=Sun, 12-Apr-20 18:36:46 GMT; path=/; domain=.myshopify.com; HttpOnly; SameSite=Lax",
"X-Frame-Options":"DENY"
}