415 不支持的媒体类型错误 - Domo 连接器

415 Unsupported Media Type error - Domo Connector

本文关键字:Domo 连接器 错误 类型 不支持 媒体      更新时间:2023-09-26

所以我正在使用Domo开发人员工具构建一个连接器(他们喜欢称之为IDE),但我似乎无法让身份验证部分与他们的库一起工作。

Domo 使用httprequest库进行基本和 oauth 类型的身份验证。

我无法通过 Domo 取回令牌,但我可以通过curl或使用邮递员 api 工具轻松完成。

下面是代码:

var client_id = '4969e1ea-71b9-3267-ae7d-4ce0ac6bfa28';
var client_secret = '*****************************';
var user = '*********';
var pass = '*********';
var postData =
{
  data: {
    'grant_type': 'password',
    'username': user,
    'password': pass,
     'client_id': client_id,
    'client_secret': client_secret,
    'scope': 'internal'
  }
};
var res = httprequest.post('https://rest.synthesio.com/security/v1/oauth/token', postData);
DOMO.log('res: ' + res);

请让我知道您是否有不同的方法来解决这个问题。我尝试在postData对象本身中添加标头,并删除data变量,也保留属性。

当你将postData作为这样的对象过去时,DOMO将通过JSON.stringify运行它,并将结果发送到请求正文中。

您可以手动对请求正文进行编码,也可以使用其 httprequest.addParameter 函数添加它们。尝试这样的事情:

var client_id = '4969e1ea-71b9-3267-ae7d-4ce0ac6bfa28';
var client_secret = '*****************************';
var user = '*********';
var pass = '*********';
httprequest.addParameter('grant_type', 'password');
httprequest.addParameter('username', user);
httprequest.addParameter('password', pass);
httprequest.addParameter('client_id', client_id);
httprequest.addParameter('client_secret', client_secret);
httprequest.addParameter('scope', 'internal');
var res = httprequest.post('https://rest.synthesio.com/security/v1/oauth/token');
DOMO.log('res: ' + res);