0

我正在构建一个使用 Upwork API 的网络服务。我一直在使用 Send Client Offer 调用并具有以下代码:

const Offers = require('upwork-api/lib/routers/hr/clients/offers.js').Offers;
var offers = new Offers(api);

var params = {
    'title': 'this is a test',
    'jobType': 'hourly',
    'chargeRate': '20.0',
    'messageToContractor': 'Please accept this test job',
    'teamReference': '5051328',
    'contractorReference': '~0120735c46bc72dc4f'
    'related_jobcategory2': '1031626745110315008'
};

offers.makeOffer(params, function(error, data) {
    if (error){
        response(context, error.statusCode, 'api.sendClientOffer failed with: ' + JSON.stringify(error));
    }
    else {
        ok(context, data);
    }
});

这会产生以下错误:

api.sendClientOffer 失败:

{"statusCode":400,"data":"{\"server_time\":1574402550,\"error\":{\"status\":\"400\",\"code\":\"1\",\"message\":\"FP2 offers should have at least one milestone defined.\"}}"}

这是令人困惑的,因为里程碑应该只需要固定价格类型,而不是每小时。

当我添加里程碑参数时:

'里程碑':[ {'milestone_description':'第一个里程碑','deposit_amount':10.0,'due_date':'12-15-2019'},{'milestone_description':'第二个里程碑','deposit_amount':10.0, 'due_date': '12-23-2019'} ]

我得到 api.sendClientOffer 失败:

{"statusCode":401,"data":"{\"server_time\":1574402693,\"error\":{\"status\":401,\"code\":401,\"message\":\"Verification of signature failed.\"}}"}

getCompanies 调用显示我可以访问我引用的团队,并且我的凭据适用于 getUserInfo 和 searchFreelancers 调用。有没有人有这个调用的 node.js 示例我可以用作参考?我很难确定这是身份验证错误还是验证错误。

4

1 回答 1

0

您使用了错误的参数,请在https://developers.upwork.com/?lang=node#contracts-and-offers_send-client-offer查看此 API 的文档。没有jobType参数,它被称为job_type. 对其他人也一样。

于 2019-11-25T05:10:53.460 回答