google apps script - Cómo autorizar y publicar/actualizar la tarjeta Trello desde un script de Google Docs
google-apps-script oauth (2)
Tengo una hoja de cálculo de Google Docs que me gustaría utilizar para actualizar las tarjetas referenciadas en Trello. He tenido cierto éxito con los datos de Oauth y Pulling a través de su HTTP API, pero estoy atrapado con lo siguiente:
1) parece que el código.js de Trello requiere un objeto de ventana, que el script de Google Doc no proporciona. Entonces, estoy atrapado usando su HTTP API.
2) la autenticación a través de OAuth funciona, pero solo me da acceso de lectura. No puedo actualizar las tarjetas con el token que puedo obtener.
function test() {
var oauthConfig = UrlFetchApp.addOAuthService("trello");
oauthConfig.setAccessTokenUrl("https://trello.com/1/OAuthGetAccessToken");
oauthConfig.setRequestTokenUrl("https://trello.com/1/OAuthGetRequestToken");
oauthConfig.setAuthorizationUrl("https://trello.com/1/authorize?key=" + consumerKey + "&name=trello&expiration=never&response_type=token&scope=read,write");
//oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken"); <-- this only gives read access. Cannot POST
oauthConfig.setConsumerKey(consumerKey);
oauthConfig.setConsumerSecret(consumerSecret);
var url = ''https://trello.com/1/cards/yOqEgvzb/actions/comments&text=Testing...'';
var postOptions = {"method" : "post",
"oAuthServiceName": "trello",
"oAuthUseToken": "always"};
var response = UrlFetchApp.fetch(url, postOptions); // "Request failed for returned code 404. Truncated server response: Cannot POST"
Logger.log(response.getContentText());
}
He encontrado una serie de preguntas relacionadas, pero no hay respuestas directas:
¿Cómo obtener un token de usuario permanente para escribir usando la API de Trello?
API de Trello: votar en una tarjeta
API de Trello: Cómo POSTAR una tarjeta de Google Apps Script (GAS)
La secuencia de comandos de Google Apps oauth connect no funciona con trello
Muchas gracias de antemano por cualquier consejo.
en 1) sí, no puede usar la biblioteca del servidor de gas, debe ejecutarse desde un navegador. en 2), lo hice desde GAS con acceso de escritura sin problemas. Debe usar el formato: https://api.trello.com/1/.../xxxx?key=yyyyyy&token=zzzzzzz& ...
y cuando obtienes el token, debes solicitar acceso permanente (sin vencimiento) y acceso de escritura, como en: https://trello.com/1/authorize?key= "+ key +" & name = xxxxxxx & expiration = never & response_type = token & scope = leer escribir"
Como en:
function postNewCardCommentWorker(cardId, comment, key, token) {
var commentEncoded=encodeURIComponent(comment);
var url = "https://api.trello.com/1/cards/"+cardId+"/actions/comments?text="+commentEncoded+"&key="+key+"&token="+token;
var options =
{
"method" : "POST"
};
UrlFetchApp.fetch(url, options);
}
Para obtener acceso de escritura, debe cambiar la URL de autorización. Este ejemplo funciona para mí
var oauthConfig = UrlFetchApp.addOAuthService("trello");
oauthConfig.setAccessTokenUrl("https://trello.com/1/OAuthGetAccessToken");
oauthConfig.setRequestTokenUrl("https://trello.com/1/OAuthGetRequestToken");
oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken?scope=read,write");