Google Apps Script内からgoo.gl APIをクエリしようとしています。私が見ている問題は、次のエラーメッセージです:googleアプリケーションスクリプトからgoo.gl APIを使用する際の問題
Request failed for https://www.googleapis.com/urlshortener/v1/url?key=AIXXXXXXXXXXXXXXXXXXXXXLmGJQw returned code 400. Server response: { "error": { "errors": [ { "domain": "global", "reason": "parseError", "message": "This API does not support parsing form-encoded input." } ], "code": 400, "message": "This API does not support parsing form-encoded input." } } (line 28)
メッセージ私はUrlFetchApp.fetch(post_url, options);
での実際の要求をしようとすると起動します。
Google Apps Scriptで実際に使用しているコードは次のとおりです。
function minifyGoogl(longUrl) {
var post_url = 'https://www.googleapis.com/urlshortener/v1/url';
var apiKey = UserProperties.getProperty('googl_api_key');
if(!apiKey){
var apiKey = ScriptProperties.getProperty('googl_api_key');
}
if(apiKey){
post_url += '?key=' + apiKey;
}
var payload = Utilities.jsonStringify({'longUrl': longUrl });
var options = {
'method' : 'post',
'headers' : {
'Content-Type' : 'application/json'
},
'payload' : payload
};
try{
var response = UrlFetchApp.fetch(post_url, options);
}catch(e){
if(e.message){
throw e.message;
}
}
var responseJson = response.getAs('json');
}
function testMinifyGoogl(){
minifyGoogl('http://eduardo.cereto.net');
}
ありがとう、それは私が必要としていたものです。私は 'contentType'パラメータを見ませんでした。 HTTPヘッダーパラメーターを使用して自分自身で設定しようとしました。 – Eduardo
それは私のためにそれを修正しました。私が使用していたlibは、私のリクエストボディを手動でJSON.stringifyしたいと思っていました。これは正しい方向に私を指摘した。ありがとう! – frosty