通过 OAuth 1.0 Python 连接 Netsuite

本文主要介绍如何调用 RESTlet 时使用 NetSuite 的基于令牌的身份验证功能来进行身份验证。

详细文档可以参考NetSuite官方帮助中心。

  • SuiteCloud(自定义、脚本和网络服务) ==》SuiteCloud 平台简介 ==》RESTlet 身份验证 ==》为 RESTlet 集成设置基于令牌的身份验证 ==》使用 TBA 进行 RESTlet 身份验证 (OAuth)

在 RESTlet 中使用 OAuth 1.0 协议需要 NetSuite 的基于令牌的身份验证 (TBA) 功能。您必须先完成几项设置任务,然后才能使用 TBA。

  • 必须已启用基于令牌的身份验证功能。
  • 必须已创建允许使用基于令牌的身份验证进行登录的角色。
  • 必须已向有权限使用基于令牌的身份验证进行登录的角色分配用户。
  • 设置 > 集成 > 集成管理 > 管理集成中必须存在表示发送应用程序的集成记录。
    • 在集成记录中,必须启用“基于令牌的身份验证”选项。
    • 启用此选项会导致系统生成表示该应用程序的使用者密钥和密码。
  • 必须拥有在启用集成记录的“基于令牌的身份验证”选项时生成的使用者密钥和密码。
    • 如果没有这些凭据,则可以生成新的凭据。
  • 必须已为将调用 RESTlet 的用户创建令牌和令牌密码。

在 RESTlet 中使用 TBA 所需的数据

  • realm
    • 部署 RESTlet 的 NetSuite 账户 ID。
    • 可以在账户 ID 字段中的设置 > 公司 > 分类 > 子公司 > 新建处找到此值。
  • oauth_consumer_key
    • 用于跟踪调用应用程序的集成记录的使用者密钥。
    • 此字符串是您在集成记录上勾选“基于令牌的身份验证”框并保存时创建的。
    • 要创建 OAuth 标头,您还需要使用者密钥随附的使用者密码,但是您不会明确使用该密码。
    • 如果您现在已经没有这些值,可以重新生成。
  • oauth_token
    • 用于表示用户与集成记录的唯一组合的令牌。此字符串可以按多种方式生成。
    • 要创建 OAuth 标头,您还需要与令牌同时获得的令牌密码,尽管您未明确使用该密码。
  • oauth_nonce
    • 随机生成的含 6-64 个字符的唯一的字母数字字符串。
  • oauth_timestamp
    • 以 Unix 格式显示的当前时间戳。
  • oauth_signature_method
    • 一种哈希算法,可用于创建符合 RFC 2104 的签名。
    • 本文涉及代码均采用HMAC-SHA256
  • oauth_version
    • 正在使用的 OAuth 版本。 仅支持一个值:1.0。
  • oauth_signature
    • 如 RFC 5849 第 3.4 部分(描述 OAuth 1.0 规范:https://tools.ietf.org/html/rfc5849)的规定生成的签名。
    • 要创建签名,您需要此表中列出的所有其他值,例如用于进行调用的 HTTP 方法。
    • OAuth 库提供多种语言,可用于帮助您创建签名。有关某些可用的第三方开源库的详细信息,请参阅SuiteAnswer 42171。
    • 如果您使用的语言没有库,则可能需要参考SuiteAnswer 42019以获取签名创建过程的概述。
  • TIPS:
    • OAuth 1.0 RESTlet 授权标头需要下表中描述的数据。其中一些值可从 NetSuite UI 中获取。
    • 其他值必须经过计算。通常,集成应包含识别这些值和生成最终标头的逻辑。请遵循 OAuth 1.0 协议来创建授权标头。
    • TBA 中的所有编码都是百分比编码。字符串必须使用 RFC 3986 进行转义。如果不对标头中的字符进行转义,则可能会收到INVALID_LOGIN_ATTEMPT 错误。有关百分比编码的更多信息,请转到 https://tools.ietf.org/html/rfc5849#section-3.6

示例代码

此处内容需要 回复 后才能查看

 

 

 

THE END
分享
二维码
打赏
海报
通过 OAuth 1.0 Python 连接 Netsuite
本文主要介绍如何调用 RESTlet 时使用 NetSuite 的基于令牌的身份验证功能来进行身份验证。 详细文档可以参考NetSuite官方帮助中心。 SuiteCloud(自定义、脚……
<<上一篇
下一篇>>