因此,该网站为我们提供了一些代码示例。我已经设法做好GET功能,但是似乎什么也没张贴。这是下面的示例
curl -X POST https://api.teachworks.com/v1/customers/family \
-H 'Content-Type: application/json' \
-H 'Authorization: Token token={access_token}' \
-d '{
"customer":
{
"first_name": "Jake & Paula",
"last_name": "Jackson",
"email": "[email protected]",
"home_phone": "123-123-1234",
"mobile_phone": "123-123-1234",
"status": "Active"
}
}'
这是我的代码
function test(){
url = "https://api.teachworks.com/v1/customers/family";
var token = {api_key};
headers = {
"Accept": "application/json",
"Authorization": "Token token="+token
};
payload = '{ "customer": \
{"first_name": "Jake & Paula", \
"last_name": "Jackson", \
"email": "[email protected]",\
"home_phone": "123-123-1234", \
"mobile_phone": "123-123-1234", \
"status": "Active" }}';
Logger.log(payload);
options = {
"headers" : headers,
"method" : "post",
"payload" : payload
}
Logger.log(options);
response = UrlFetchApp.fetch(url,options);
Logger.log(response);
}
每次运行它都会收到相同的错误:
对https://api.teachworks.com的请求失败,返回了代码400。服务器响应被截断:缺少必需的参数:客户
如果我理解正确,则有效载荷等效于-d。所以我的代码应该是正确的。请让我知道我做错了。
@ theMaster缺少ContentType是正确的。
标头中接受的是客户端可接收的mimeType。 contentType用于UrlFetchApp,与标头的Content-Type相同。 Content-Type是请求正文的mimeType。在您的情况下,必须使用application / json的contentType。 Ref顺便说一句,我能否问您是否可以确认curl命令正常工作?来源评论@Tanaike
function test(){
url = "https://api.teachworks.com/v1/customers/family";
var token = {api_key};
headers = {
"Accept": "application/json",
"Authorization": "Token token="+token
};
payload = '{ "customer": \
{"first_name": "Jake & Paula", \
"last_name": "Jackson", \
"email": "[email protected]",\
"home_phone": "123-123-1234", \
"mobile_phone": "123-123-1234", \
"status": "Active" }}';
Logger.log(payload);
options = {
"headers" : headers,
"method" : "post",
"payload" : payload
"contentType" = "application/json"
}
Logger.log(options);
response = UrlFetchApp.fetch(url,options);
Logger.log(response);
}