使用Axios发布到Sheetlabs API

时间:2019-01-05 00:24:42

标签: javascript ajax axios

我正在与Sheetlabs合作,将Google表格转换为完整的API。除了Sheetlabs documentation之外,我在网上找不到有用的信息时遇到了麻烦,因为目前看来这是一项相当小的服务。

我正在Twilio的自定义函数中使用axios将信息发布到我们的Sheetlabs API。该API需要HTTP基本身份验证。

我在axios通话中尝试了各种变体,尝试遵循Sheetlabs SwaggerHub Documentation,但我的想法已经用完了。

const url = 'https://sheetlabs.com/records/{organization}/{dbName}';

const postData = {
  trackingid: `${trackingUrl}`,
  phonenumber: `${userPhoneNumber}`
}

const authParams = {
  username: //sheetlabs email,
  password: //access token
}

// axios function
axios.post(url, postData, {auth: authParams}).then(response => {
  console.log('response: ', response);
}).catch(err => {
  console.log('axios sheetlabs post error catch: ', err);
});

任何帮助将不胜感激。我会尽力为您提供所需的其他信息。

2 个答案:

答案 0 :(得分:0)

默认情况下,AJAX以application/x-www-form-urlencoded格式发送数据,但是Axios将其作为JSON发送。我之所以提到AJAX,是因为他们在example page中使用$.ajax进行网络请求。

Axios在其Github here上提到了此默认设置,这是我在许多未发送接收JSON的服务器上遇到的。尝试进行npm install qs并查看是否对您有帮助可能值得一试:

const qs = require('qs');
axios.post(url, qs.stringify(postData), {auth: authParams}).then(response => {
  console.log('response: ', response);
}).catch(err => {
  console.log('axios sheetlabs post error catch: ', err);
});

答案 1 :(得分:0)

我与Sheetlabs支持小组联系,目前他们不支持通过帖子将新记录添加到Google表格中。可能发誓我在他们的文档和API中看到了这种功能。谢谢您的回复。