标签: servicenow-rest-api

通过 OAuth for REST 通过单个应用程序访问多个服务实例

我想在 serviceNow(如 Facebook)中创建一个应用程序,它可以通过 OAuth 为不同的实例调用 REST API。

假设,我在 servicenow 的实例 A 中创建了一个应用程序,现在通过适当的 OAuth 和权限机制,我想访问其他实例的 REST API。

到目前为止,我能够创建一个应用程序并将其注册到应用程序注册表中,并且我还能够验证该实例的 Oauth(生成令牌);但现在我想为其他实例执行此操作,而无需每次都创建一个新应用程序。当我尝试这样做时,我收到此错误:

未经授权的客户端:提供的客户端凭据(
您正在使用的服务的凭据)无效或不受信任

servicenow servicenow-rest-api

6
推荐指数
1
解决办法
249
查看次数

使用 Powershell 从 Servicenow 票证下载附加的 excel 文件

我目前正在开发一个 powershell 脚本,该脚本应该能够从现在服务票中下载附加的 excel 文件,在我解释更多之前,请参阅下面的自动化的基本流程。

  1. 将要求用户输入票号。

在此处输入图片说明

  1. 然后系统会找到那个事故单,准确的拿到需要的excel文件(我在网上看到需要使用sys_id)。
  2. 然后它将被下载到用户机器上的特定路径。例如:“C:\下载\演示\”。

完成所有这些之后,我在网上找到了一个示例脚本,我正在尝试对其进行配置以满足我的需求;但是,我不确定从哪里获取该示例脚本的值。您可以检查脚本下方的项目符号以了解我想到的问题。

$IncidentNumber = Read-Host -Prompt 'Enter Incident Request #'
#$admin = "admin"
#$password = "admin" | ConvertTo-SecureString -AsPlainText -Force 
#$Credential = New-Object pscredential -ArgumentList ($admin,$password)
$Uri = "https://dev42835.service-now.com/api/now/table/incident?sysparm_query=number=$($IncidentNumber)&sysparm_fields=sys_id&sysparm_limit=1"
$IncidentResult = Invoke-RestMethod -Uri $Uri #-Method Get -Credential $Credential
if($IncidentResult.result.sys_id -ne $null) {
    $IncidentAttachments = Invoke-RestMethod -Uri "https://dev42835.service-now.com/api/now/attachment?sysparm_query=table_sys_id=$($IncidentResult.result.sys_id)" #-Method Get -Credential $Credential
    $IncidentAttachments.result | Select file_name , download_link
}
else{
    "Incident Not Found!"
}
Run Code Online (Sandbox Code Playgroud)
  • 我真的需要凭据来运行脚本吗?如果是,有没有办法消除对凭据的需求?
  • 我在哪里可以获得分配给 $URI 变量的 URL?

我是 powershell 自动化的新手,所以如果您能推荐更好的方法,我将不胜感激。

asp.net powershell servicenow servicenow-rest-api

5
推荐指数
1
解决办法
919
查看次数

如何使用 REST API 下载 CSV?

这是一个 REST API,我正在尝试将数据下载为 CSV 文件。

(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {

    var data = '\n'; // workaround to separate <xml> start tag on first line
    data += 'Firstname,Lastname,Username' + '\n';
    data += 'Nikhil,vartak,niksofteng' + '\n';
    data += 'Unknown,person,anonymous' + '\n';

    response.setHeader("Content-Disposition", "attachment;filename=Xyz.csv");
    response.setContentType("text/csv");
    response.setBody({'data':data});

})(request, response);
Run Code Online (Sandbox Code Playgroud)

根据文档 setBody需要一个 JS 对象,因此如果我只是传递data变量,我会收到错误,指出数据无法解析为ScriptableObject.

因此,使用当前代码我得到以下响应:

{
  "result": {
    "data": "\nFirstname,Lastname,Username\nNikhil,vartak,niksofteng\nUnknown,person,anonymous\n"
  }
}
Run Code Online (Sandbox Code Playgroud)

生成的 CSV 如下所示:

在此输入图像描述

知道如何去掉第一行和第五行的 XML 标记吗?

export-to-csv servicenow servicenow-rest-api

4
推荐指数
1
解决办法
3万
查看次数

使用 LDAP 凭证进行curl 身份验证

我正在尝试使用使用 ldap 身份验证的curl 连接到servicenow 服务器。

我的命令:

curl -ntlm -u user https://my.service-now.com/api/now/table/incident
Run Code Online (Sandbox Code Playgroud)

然后我得到:

Enter host password for user 'user':
{"error":{"message":"User Not Authenticated","detail":"Required to provide Auth information"},"status":"failure"}
Run Code Online (Sandbox Code Playgroud)

如何通过curl命令获得身份验证?

curl ldap servicenow-rest-api

3
推荐指数
1
解决办法
1万
查看次数

在 Python 中的 requests.post() 中发送变量作为数据参数

我试图将变量传递到 requests.post() 中的数据字段,但我继续收到错误,

  Error Response: {'error': {'message': 'Exception while reading request', 
'detail': 'Cannod decode: java.io.StringReader@1659711'}, 'status': 'failure'}
Run Code Online (Sandbox Code Playgroud)

这是我的代码

#Fill array from CSV
temp=[]
for row in csv.iterrows():
    index, data = row
    temp.append(data.tolist())


#Create new asset for all assets in CSV
for index, row in enumerate(temp):
    make = temp[index][0]
    serial = str(temp[index][1])
    date = str(temp[index][2])
    response = requests.post(url, auth=(user, pwd), headers=headers, 
    data='{"asset_tag":"test1", "assigned_to":"test2", 
    "company":"test3", "serial_number":serial}')
Run Code Online (Sandbox Code Playgroud)

我最初尝试使用直接从 CSV 提供数据

str(temp[index][1])
Run Code Online (Sandbox Code Playgroud)

这不起作用,所以我尝试分配str(temp[index][1])给变量serial,然后像这样传递变量,但这也会导致相同的错误。

如果能找到正确的方向就太好了,谢谢!

python post python-requests servicenow servicenow-rest-api

-1
推荐指数
1
解决办法
1万
查看次数