2017-04-25 2 views
1

Ich denke, ich habe versucht, alle Lösungen hier, und keiner von ihnen arbeitete für mich.Trello verschiebt keine Karten zwischen den Listen mit Google App Script

Das Problem ist, dass ich nicht Karten zwischen Liste mit dem Trello api verschieben kann. Ich habe diese Art und Weise versucht, es zu tun:
Nummer 1:

var API_KEY = '********************************'; 
var TOKEN = '************************************************************'; 
var ID_LIST = '***************************'; 

    var payload = { 
    "value": ID_LIST, 
    "token": TOKEN, 
    "key": API_KEY 
    }; 
    var options = { 
    "method": "PUT", 
    "payload": payload 
    }; 
    // Post the payload to Trello 
    try { 
    var response = UrlFetchApp.fetch('http://api.trello.com/1/cards/[id of my card]/idList', options); 
    Logger.log(response); 
    } catch (e) { 
    // Log any errors 
    Logger.log("ERROR:\n"+e.message); 
    } 

Nummer 2:

function createOAthService_Trello() { 

    var consumerKey='*************************'; 
    var consumerSecret = '********************************************************' 

    var service = OAuth1.createService("trello"); 
    service.setAccessTokenUrl("https://trello.com/1/OAuthGetAccessToken"); 
    service.setRequestTokenUrl("https://trello.com/1/OAuthGetRequestToken"); 
    service.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken?scope=read,write"); 
    service.setPropertyStore(PropertiesService.getScriptProperties()); 

    service.setCallbackFunction('authCallback_Trello'); 

    service.setConsumerKey(consumerKey); 
    service.setConsumerSecret(consumerSecret); 

    return service; 
} 



function checkServiceAccess(){ 
     var service = createOAthService_Trello(); 
     var emailAddress ='*****@********.com'; 

     if(service.hasAccess()){ 
     return service; 
    } 
    else { 
     var authorizationUrl = service.authorize(); 
     MailApp.sendEmail(emailAddress, 'Google Script App Needs Authorization (Trello)', 'Please visit the following URL and then re-run the script: ' + authorizationUrl); 
     Logger.log('Please visit the following URL and then re-run the script: ' + authorizationUrl); 
    } 
} 
function moveCard(){ 
     var service = checkServiceAccess(); 
     var url = 'http://api.trello.com/1/cards/[myCardId]/idList?value=[newListId]&token=[myToken]&cards=open&lists=open' 
     var options = {"method" : "put"}; 

     var raw= service.fetch(url, options); 
     Logger.log(raw); 
} 

Diese beiden Teile des Codes nicht abstürzt. Sie verschieben jedoch keine Karte und geben nur ein Protokoll mit der ID der Liste zurück, in der sie gespeichert sind.
Ich habe tausend Mal überprüft, ob die IDs korrekt sind, also kann das nicht das Problem sein. Es scheint kein Problem mit der PUT-Anfrage zu sein, da ich Beschreibungen, Titel, ... aktualisieren kann. Aber mit der DELETE-Anfrage wird eine "Unerwartete Ausnahme" ausgelöst. Vielleicht sind sie verwandt.

Auch habe ich versucht, diese auf meinem Code einzufügen:

<html> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
<script type="text/javascript" src="https://trello.com/1/client.js?key=*****************************"></script> 
</html> 

//eval(UrlFetchApp.fetch('https://trello.com/1/client.js?key=************************').getContentText()); 

var success = function(successMsg) { 
    asyncOutput(successMsg); 
}; 

var error = function(errorMsg) { 
    asyncOutput(errorMsg); 
}; 

Logger.log(Trello.get('/member/me/boards', success, error)); 

Aber es abstürzen, weil es nicht die Trello globale Variable finden. Ich bin wirklich verzweifelt, jede Hilfe wird geschätzt. Vielen Dank für Ihre Zeit! :)

+0

Wenn Sie mit anderen Trello-Aufrufen erfolgreich sein können, haben Sie höchstwahrscheinlich einen Fehler in der API-Verwendung. Der letzte Versuch kann nicht funktionieren, da die Trello-Bibliothek für den Frontend-Einsatz gedacht ist, nicht für den Backend-Einsatz. –

+0

Ich dachte, es könnte so sein, also habe ich es in Trellos Sandkasten versucht, und es hat funktioniert. Aber sie verwenden das globale Trello-Objekt ... –

+0

Sie können versuchen, mit dem Chrome-Debugger API-Aufrufe mit JavaScript in der Konsole zu machen. –

Antwort

0

Jemand von Trello hat mir dabei geholfen. Also, wenn Sie das gleiche Problem haben, ändern Sie einfach die URL aus:

http://api.trello.com/1/cards/[myCardId]/idList?value=[newListId]&token=[myToken]&cards=open&lists=open 

zu:

https://api.trello.com/1/cards/[myCardId]/idList?value=[newListId]&token=[myToken]&cards=open&lists=open 

Es scheint, dass Trello alle nehmen setzen und Post gemacht bei http: // als BEKOMMEN. Mit https: // lösen Sie stattdessen das Problem.

Verwandte Themen