実現したいこと
YahooAPIのv12への対応
質問内容
こちらにて今後はリクエストヘッダーにx-z-base-account-idの指定が必須
と記載があります。
またそれはBaseAccountService
で取得可能と記載があるのですが、方法が分からないので教えていただきたいです。
下記の様に記述したのですがBad request
となったため質問いたしました。
試したソースコード①
GAS
1function check() { 2 var access_token = 'something'; 3 4 var params = { 5 method: 'post', 6 contentType: 'application/json', 7 headers: { 8 'Authorization': 'Bearer ' + access_token 9 }, 10 muteHttpExceptions: true 11 } 12 13 var response = UrlFetchApp.fetch("https://ads-search.yahooapis.jp/api/v12/BaseAccountService/get", params); 14 15 Logger.log('getHeaders(): ' + response.getHeaders()); 16 Logger.log('getResponseCode(): ' + response.getResponseCode()); 17 Logger.log('getContentText(): ' + response.getContentText()); 18}
ログ①
getHeaders(): {"Transfer-Encoding":"chunked","x-yahoo-ads-rid":"50577f5cbb1b1541ff25c0df4ac900a1","X-Content-Type-Options":"nosniff","X-XSS-Protection":"1; mode=block","Date":"Wed, 20 Sep 2023 06:55:57 GMT","Content-Type":"application/json;charset=UTF-8","X-Frame-Options":"SAMEORIGIN","x-vcap-request-id":"c4916d79-ea22-44e4-74fc-84bab8d34898","Connection":"keep-alive","Vary":"Access-Control-Request-Headers"}
getResponseCode(): 400
getContentText(): {"rid":"dd1fa4ef4f6af9dabace8cc3ce471056","errors":[{"code":"0005","message":"Bad request.","details":[]}]}
試したソースコード②
GAS
1function check() { 2 3 var CLIENT_ID = 'something'; 4 var CLIENT_SECRET = 'something'; 5 var access_token = 'something'; 6 7 var payload = { 8 client_id: CLIENT_ID, 9 client_secret: CLIENT_SECRET 10 }; 11 12 var params = { 13 method : 'post', 14 contentType: 'application/json', 15 headers: { 16 'Authorization': 'Bearer ' + access_token 17 }, 18 payload: JSON.stringify(payload), 19 muteHttpExceptions: true 20 }; 21 var response = UrlFetchApp.fetch("https://ads-search.yahooapis.jp/api/v12/BaseAccountService/get", params); 22 23 Logger.log('getHeaders(): ' + JSON.stringify(response.getHeaders())); 24 Logger.log('getResponseCode(): ' + response.getResponseCode()); 25 Logger.log('getContentText(): ' + response.getContentText()); 26}
ログ②
getHeaders(): {"X-Frame-Options":"SAMEORIGIN","X-Content-Type-Options":"nosniff","x-vcap-request-id":"52eae2bc-dc0d-4242-6470-2ae6d0934bcf","Content-Type":"application/json;charset=UTF-8","Vary":"Access-Control-Request-Headers","Transfer-Encoding":"chunked","Connection":"keep-alive","Date":"Wed, 20 Sep 2023 08:15:16 GMT","X-XSS-Protection":"1; mode=block","x-yahoo-ads-rid":"8309ff0dcc59fc23e593e705d468b982"}
getResponseCode(): 400
getContentText(): {"rid":"8309ff0dcc59fc23e593e705d468b982","errors":[{"code":"0005","message":"Bad request.","details":[]}]}
解決
function check() { var access_token = 'something'; var payload = { "accountIds": [] }; var params = { method : 'post', contentType: 'application/json', headers: { 'Authorization': 'Bearer ' + access_token }, payload: JSON.stringify(payload), muteHttpExceptions: true }; var response = UrlFetchApp.fetch("https://ads-search.yahooapis.jp/api/v12/BaseAccountService/get", params); var accountId = JSON.parse(response)["rval"]["values"][0]["account"]["accountId"]; Logger.log('accountId: ' + accountId); }
回答1件
あなたの回答
tips
プレビュー