【发布时间】:2017-09-22 14:33:04
【问题描述】:
我想我已经尝试了这里所有的解决方案,但没有一个对我有用。
问题是我无法使用 trello api 在列表之间移动卡片。我已经尝试过这种方法:
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);
}
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);
}
这两段代码不会崩溃。但它们不会移动任何卡片,只会返回一个带有放置它们的列表 ID 的 Log。
我已经检查了一千次以确保 id 是正确的,所以这不是问题。
PUT 请求似乎没有问题,因为我可以更新描述、标题……但是对于 DELETE 请求,它会触发“意外异常”。也许他们是相关的。
另外,我试图在我的代码中插入这个:
<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));
但它崩溃了,因为它找不到 Trello 全局变量。 我真的很绝望,任何帮助将不胜感激。 感谢您的时间! :)
【问题讨论】:
-
如果其他 trello 调用都能成功,很可能是你的 api 使用有误。最后一次尝试无法工作,因为 trello 库是供前端使用的,而不是后端使用的。
-
我认为可能是这样,所以我在 Trello 的沙箱中进行了尝试,并且成功了。但他们使用全局 Trello 对象...
-
您可以尝试使用chrome调试器在控制台中使用JavaScript进行api调用。
标签: javascript google-apps-script trello