【问题标题】:How to call a NetSuite SuiteScript by SOAP - Ballerina Lang如何通过 SOAP 调用 NetSuite SuiteScript - Ballerina Lang
【发布时间】:2021-11-06 16:49:11
【问题描述】:

我创建了一个 NetSuite Saved Search 来获取一些数据。我编写了一个 SuiteScript 来访问保存的搜索并获取数据。 SuiteScript 也已部署。

我通过邮递员使用 OAuth 1 身份验证流程测试了 SuiteScript,并取得了成功。

我需要通过 SOAP 请求访问相同的 SuiteScript 并使用 Ballerina 进行集成。

如何将 OAuth 集成到 ballerina 中并访问 SuiteScript?

【问题讨论】:

  • 您使用的 Ballerina 版本是什么?
  • @Buddhi 它的 Swan Lake Alpha 5。我正在使用基于令牌的身份验证,这意味着 Oauth 1.0。需要使用 ballerina 来实现此流程以访问 SuiteScript (Restlets)。

标签: soap netsuite suitescript ballerina oauth-1.0a


【解决方案1】:
import ballerina/http;
import ballerina/io;
import ldclakmal/oauth1;

public function main() returns error? {
    oauth1:ClientOAuthHandler oauthHandler = new({
        signatureMethod: oauth1:HMAC_SHA1,
        consumerKey: "dpf43f3p2l4k3l03",
        consumerSecret: "kd94hf93k423kf44",
        accessToken: "hh5s93j4hdidpola",
        accessTokenSecret: "pfkkdhi9sl3r4s00",
        realm: "Photos",
        nonce: "7d8f3e4a"
    });
    map<string|string[]> securityHeaders = check oauthHandler.getSecurityHeaders("GET", 
        "https://photos.example.net/request?type=jpg&maxsize=10mb");
    final http:Client clientEP = check new("https://photos.example.net");
    json payload = check clientEP->get("/request?type=jpg&maxsize=10mb", securityHeaders);
    io:println(payload);
}

【讨论】:

  • 感谢您的解决方案。我提到了[3]的代码。 getSecurityHeaders(string httpMethod, string url, string? queryParams = ()) 的参数应该是什么?
  • @BuddhikaPriyabhashana 它应该是您用于 API 调用的 HTTP 方法、不带查询参数的完整 URL 和作为单独参数的查询参数(如果有的话)。
  • 我以更简化的方式更新了API并更新了原始答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多