ошибка «неверный запрос» при использовании API-интерфейса wunderlist в Google Apps Script - PullRequest
0 голосов
/ 21 мая 2018

Я использую API-интерфейс wunderlist от Google Apps Scripts для получения задач из списка (https://developer.wunderlist.com/documentation/endpoints/task). Следующий код выдает ошибку «неверный запрос» в строке, ведущей UrlFetchApp в функции getTasks.

var accessToken = 'my-access-token';
var clientID = 'my-client-id';
var url = 'https://a.wunderlist.com/api/v1/';

var headers = {
    'X-Access-Token': accessToken,
    'X-Client-Id': clientID,
    'Content-Type': 'application/json'
};

function getTasks(listId){
    var payload = 
    {
        "list_id" : listId,
        "completed" : true
    };
    var options =
    {
        "method" : 'get',
        "headers" : headers,
        "payload" : JSON.stringify(payload),
    };
    var response = UrlFetchApp.fetch(url + 'tasks', options);
    return response;
}

function main(){
    var result = getTasks(my-listid);
}

Тем не менее, выполнение того же действия с использованием curl работает нормально;

curl -H "X-Access-Token: my-access-token" -H "X-Client-ID: my-client-id" a.wunderlist.com/api/v1/tasks?list_id=my-list-id

Использование другого API с таким же заголовком также успешно в скрипте Google Apps;

function getLists() {
    var options =
        {
            "method" : 'GET',
            "headers" : headers,
        };
    var response = UrlFetchApp.fetch(url + 'lists', options);
    Logger.log(response);
    return response;
}

function main(){
    var result = getLists();
}

Интересно, что не так?в первом коде. Заранее спасибо!

1 Ответ

0 голосов
/ 21 мая 2018

Этот запрос является методом GET.И в вашем примере curl list_id=my-list-id используется в качестве параметра запроса.Так как насчет этой модификации?

Модифицированный скрипт:

var accessToken = 'my-access-token';
var clientID = 'my-client-id';
var url = 'https://a.wunderlist.com/api/v1/';

var headers = {
    'X-Access-Token': accessToken,
    'X-Client-Id': clientID,
//    'Content-Type': 'application/json' // This property may not be necessary.
};

function getTasks(listId){
    var options =
    {
        "method" : 'get',
        "headers" : headers,
    };
    var q = "?list_id=" + listId + "&completed=true";
    var response = UrlFetchApp.fetch(url + 'tasks' + q, options);
    return response;
}

function main(){
    var result = getTasks(my-listid);
}

Если это не сработало, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...