tutorial script google example ejemplos apps apis google-apps google-apps-script goo.gl

google-apps - example - javascript google apps script



Problemas al usar la API goo.gl desde el script de aplicaciones google (2)

Estoy intentando consultar la API goo.gl desde dentro de Google Apps Script. El problema que estoy viendo es el siguiente mensaje de error:

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)

aparece el mensaje cuando intento hacer la solicitud real en UrlFetchApp.fetch(post_url, options); .

Aquí está la codificación real que estoy usando en 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''); }


La documentación dice que contentType predeterminado ''application / x-www-form-urlencoded'' .

Tal vez intente configurar Content-Type con el argumento contentType en lugar de insertar un encabezado Content-Type manualmente.


El siguiente código funciona perfectamente.

function ShortenUrl(){ var url = ''https://www.googleapis.com/urlshortener/v1/url''; var apiKey = ''AIzBlNS-3HZdxKgwj-x30''; url += ''?key='' + apiKey; var payload = {"longUrl":"www.google.com"}; var parameters = { method : ''post'', payload:JSON.stringify(payload), contentType:''application/json'', muteHttpExceptions:true}; var response = UrlFetchApp.fetch(url, parameters); Logger.log(response); }