如何用Python下载NetSuite已保存搜索数据及密钥与报错问题
NetSuite已保存搜索数据下载问题及解决指引
问题说明
想用Python下载NetSuite已保存搜索的数据,找到一份旧帖子里的解决方案代码:
from requests_oauthlib import OAuth1Session session = OAuth1Session( client_key='**YOUR_KEYS**', client_secret='**YOUR_KEYS**', resource_owner_key='**YOUR_KEYS**', resource_owner_secret='**YOUR_KEYS**', signature_type='auth_header', signature_method='HMAC-SHA256', realm='**YOUR_NETSUITE_ACCOUNT_NUMBER**', ) r = session.get( url='https://**YOUR_NETSUITE_ACCOUNT**.restlets.api.netsuite.com/app/site/hosting/restlet.nl?script=**YOUR_SCRIPT_DEPLOYMENT_ID**&deploy=1&searchId' '=**YOUR_SAVED_SEARCH_ID**', headers={'Content-Type': 'application/json'} ) netsuite = r.json() print(netsuite)
但不清楚代码中client_key、client_secret、resource_owner_key、resource_owner_secret的获取位置,尝试用找到的consumer key、consumer secret、token id、token secret对应填入后,收到错误:
{'error': {'code': 'SSS_INVALID_SCRIPTLET_ID', 'message': 'That Suitelet is invalid, disabled, or no longer exists.'}}
密钥对应关系及获取方法
代码中的密钥和NetSuite里的凭证一一对应:
client_key→ Consumer Keyclient_secret→ Consumer Secretresource_owner_key→ Token IDresource_owner_secret→ Token Secret
获取路径:
- 登录NetSuite后台,进入「设置」>「集成」>「管理集成」
- 新建集成记录,勾选「OAuth 1.0a」相关权限,保存后即可获得Consumer Key和Consumer Secret
- 生成令牌(Token):在集成记录中关联对应角色,生成后就能拿到Token ID和Token Secret
「SSS_INVALID_SCRIPTLET_ID」错误排查
这个错误和OAuth密钥无关,问题出在Restlet脚本或URL配置上,按以下步骤排查:
- 确认脚本部署ID:URL中
script=后面的参数是脚本部署ID(不是脚本本身的ID),可在脚本部署记录的URL或「ID」字段中找到 - 检查脚本状态:确保该Restlet脚本已启用,且部署状态为「已发布」
- 权限验证:脚本部署关联的角色需要有访问该Restlet的权限,同时具备对应已保存搜索的访问权限
- 修正URL格式:原代码中URL的拼接存在语法问题,
searchId部分被拆分,正确的完整URL应该是:https://{你的NetSuite账号}.restlets.api.netsuite.com/app/site/hosting/restlet.nl?script={脚本部署ID}&deploy=1&searchId={已保存搜索ID} - 验证脚本功能:确认该Restlet脚本确实用于返回已保存搜索数据,比如脚本内是否包含调用
nlapiLoadSearch并返回结果的逻辑
内容的提问来源于stack exchange,提问作者Zahin Awosaf
相关产品推荐
相关产品推荐

