【问题标题】:Error while calling External REST URL from netsuite using token使用令牌从 netsuite 调用外部 REST URL 时出错
【发布时间】:2018-12-02 00:20:59
【问题描述】:

从 netsuite 调用 3rd 方 REST GET URL 时,我没有得到有效的 json 响应。第 3 方 api 正在使用 oAuth2 ,所以我在 UserEvent Script 中传递这样的不记名令牌。谁能告诉我这段代码有什么问题。下面是代码sn-p。

var sURL = "REST URL";

var header = { "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55X2lkIjoiYXBpdXNlck1ITVUiLCJ1c2VyX25hbWUiOiJhcGl1c2VyIiwic2NvcGUiOlsiYWNjdF9wYXlhYmxlIl0sImV4cCI6MTU0MzcxOTY3NCwiYXV0aG9yaXRpZXMiOlsiUk9MRV9VU0VSIl0sImp0aSI6IjU4MjA2YTRkLTRhYTgtNDNjNy1iZTY2LWM2YTQ1NTg0YTY2ZSIsImNsaWVudF9pZCI6Im5ldHN1aXRlLWNsaWVudCJ9.dPuwIpzZW3VrhkJnF_HaaNe8t4AMQ84UgMY5ZOK6j7g", 
                        "Content-Length": "0", 
                        "Content-Type": "application/json" };

        var request = https.get({
            url: sURL,
            headers: header
        });

        log.debug('req',request);

在调试器中得到以下输出:

{"type":"http.ClientResponse","code":406,"headers":{"X-Content-Type-Options":"nosniff","Pragma":"no-cache","日期”:“星期六,2018 年 12 月 1 日 23:46:46 GMT”,“Via”:“1.1 mono00001.svale.netledger.com”,“X-Frame-Options”:“DENY”,“Cache-Control”: “无缓存,无存储,最大年龄=0,必须重新验证”,“设置 Cookie”:“JSESSIONID=4E42866C0A8D2D8504581B74C8D6FC1C;路径=/;HttpOnly”,“过期”:“0”,“内容长度” ":"806","X-XSS-Protection":"1; mode=block","Content-Language":"en","Content-Type":"text/html;charset=utf-8"} "body":"HTTP 状态 406 – 不可接受h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma ,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;字体大小:14px;} 正文 {字体系列:Tahoma,Arial,无衬线;颜色:黑色;背景颜色:白色;} b {字体系列:Tahoma,Arial,无衬线;颜色:白色;背景颜色:#525D76;} p {字体系列:Tahoma,Ari al,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76 ;border:none;}

HTTP 状态 406 – 不可接受

" }

【问题讨论】:

  • 通过传递不记名令牌在邮递员中调用 url 给出正确的 json 响应。

标签: netsuite suitescript suitescript2.0


【解决方案1】:

NetSuite 不支持 oauth2。

【讨论】:

  • 嗨,埃里克。您能否判断这种情况下 Netsuite 是否支持 oauth1?因为有一个名为“Veem”的公共包,安装它后,如果我们在 netsuite 中单击一个按钮,它会重定向到第 3 方应用程序进行基于令牌的身份验证。进一步的请求将使用这个生成的令牌。我上面的场景与此类似,所以我假设支持 oauth。
  • 再增加一点以便更好地理解。在上面的代码中,我只是传递了不记名令牌,没有提到任何类型作为 oAuth。在邮递员中,在测试 URL 时,我将类型设置为“承载令牌”并传递了令牌,然后它给出了有效的响应。不知道为什么从给我状态码 406 的代码调用时。我的猜测是它与内容类型有关
  • 支持oauth 1.0,是的。
【解决方案2】:

我遇到了同样的问题,但是这个标题解决了问题

var header = {"接受": "*/*", “内容类型”:“应用程序/json”, “授权”:accessToken }

【讨论】:

  • 这对我很有帮助。从本质上讲,我从外部调用中得到的错误让我认为 Content-Type 标头导致了问题。事实上,它需要更改 Accept 标头:developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept。然后检查响应表明 Accept 可以设置为“application/json”。我不确定它是否会导致问题像上面那样使用通配符,但具有特定的“接受”类型似乎更干净。不过,作为调试工具,它救了我的命,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多