2017-01-09 1 views
1

Я использовал upj apj через ups через пакет npm (node-upwork), чтобы создать почасовую работу с вызовом Upwork.offers.makeOffer api, который работает отлично. Однако при создании задания с фиксированной ценой необходимо создать объект milestone и установить для параметра job_type значение «фиксированная цена». Выполнение этого же запроса дает ошибку => «ошибка проверки подписи». В чем может быть проблема? Вот пример объекта, который я создаю для запросаКак создать веху с помощью upworks api, тот, который определен в их api, дает ошибку авторизации

var Offers = require('upwork-api/lib/routers/hr/clients/offers.js').Offers; 
    var offers = new Offers(api); 
var params = { 
    title: 'RM 1', 
    job_type: 'fixed-price', 
    charge_rate: 15, 
    message_to_contractor: 'Please accept this test job from Task Router', 
    contractor_key: '~01be12345c1234534b', 
    'context[job_posting_ref]': '~12345d3348af3dc' 
}; 
var milestone = { 
    milestone_description : "complete the job", 
    deposit_amount : 1, 
    due_date : '01-17-2017' 
}; 
params.milestones = [milestone]; 
offers.makeOffer(params, function (err, data) { 
    if (err) { 
     console.log(err); 
    } 
    else { 
     console.log("offer has been made"); 
    } 
}); 

ответ

1

Оказывается Upwork требует плоского объекта JSON. Их API-документы отмечают, что все данные должны быть отправлены как данные RAW-сообщения. Поэтому вам нужно будет предоставить информацию о таких событиях.

var params = { 
    title: 'RM 1', 
    job_type: 'fixed-price', 
    charge_rate: 15, 
    message_to_contractor: 'Please accept this test job from Task Router', 
    contractor_key: '~01be12345c1234534b', 
    'context[job_posting_ref]': '~12345d3348af3dc', 
    'milestones[0][milestone_description]': 'complete the job 1', 
    'milestones[0][deposit_amount]': 15.0, 
    'milestones[0][due_date]': '01-10-2017' 
}; 
+0

спасибо, хассаан, этот подход работал. –

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