2017-02-15 1 views
1

Я использую API Trello для загрузки (и прикрепления) файлов к карте.Приложение Trello работает неправильно Content-Type, когда приложение загружается через API

Я делаю POST к https://api.trello.com/1/cards/my-card-id/attachments

тело сообщения JSON

{ file: file_contents, 'BuildSheet.html': filename, mimeType: 'text/html' } 

file_contents is a string that contains the body of the file I want to attach. 

Это работает. Файл загружается и прикрепляется. Когда я извлекаю данные карты, это то, что я вижу относительно этого приложения.

{"id":"58a496bc751c0c2fa260630f", 
"bytes":3291, 
"date":"2017-0215T17:58:20.881Z", 
"edgeColor":null, 
"idMember":"55240806b8ca85db897253c4", 
"isUpload":true, 
"mimeType":"text/html", 
"name":"BuildSheet.html", 
"previews":[], 
"url":"https://trello-attachments.s3.amazonaws.com/589ca323806c1d80cc03ea12/589ceda619d5936e8428f15b/1f62074b6700e61e611a90beaa8c2c73/Upload"} 

Вы можете видеть, что mimeType установлен правильно. имя также верно. Однако URL-адрес не использует имя файла, как это происходит, если вы загружаете его из пользовательского интерфейса. Таким образом, файл не имеет расширения .html.

При загрузке файла, он содержит этот заголовок

Content-Type: application/octet-stream 

Он должен быть текст/html. Это заставляет браузер загружать файл, а не отображать его.

Я что-то не так? У кого еще возникла эта проблема?

Кроме того есть ли способ заставить Trello использовать имя файла при его создании?

ответ

0

Когда я прикрепить файл или URL-адрес для карты Trello, я использую POST только с url, как этот (JavaScript):

var id = 'something'; 
var attach = 'https://www.cs.tut.fi/~jkorpela/forms/file.html'; 

var payload = {"url": attach}; 
var blob = new Blob([JSON.stringify(payload)], {type: 'application/json'}); 
var url = 'https://api.trello.com/1/cards/'+id+'/attachments?key='+API_KEY+'&token='+TOKEN; 

var xhttp = new XMLHttpRequest(); 
xhttp.open("POST", url, true); 
xhttp.send(blob); 

И после этого, когда я получаю JSON карты, это что-то как это:

{"id":"xxx...", ... 
"actions":[{ 
    "id":"yyy...", 
    "idMemberCreator":"...", 
    "data":{ 
    "board":{ ... 
    "attachment":{ 
     "url":"https://www.cs.tut.fi/~jkorpela/forms/file.html", 
     "name":"https://www.cs.tut.fi/~jkorpela/forms/file.html", 
     "id":"zzz..."}}, ... 

Вы можете получить JSON карточки с помощью добавления .json в конце URL. Вы можете видеть name то же самое, что и url, но нет mimeType здесь. И это нигде не найдено в the documentation. Каким образом вы получили данные карты? Если вы используете JavaScript, приведенный выше код может помочь вам.

Что касается настройки карточек, я ничего не знаю, и я думаю, это невозможно.

0

{файл: file_contents, 'BuildSheet.html': имя файла, тип_mime: 'текст/html'}

Вы пробовали с помощью ключа name? reference

Смежные вопросы