ServiceNow Rest API OAuth不返回授权错误

时间:2016-01-18 06:04:19

标签: api integration servicenow

我设法使用用户名和密码访问基本身份验证的Rest Api。 现在我尝试使用OAuth访问Rest Api。 我指的是this article

这是我创建的POST消息的格式(使用Postman with Chrome),

POST /oauth_token.do HTTP/1.1
Host: devxxxxx.service-now.com
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46Q0BycjBsMTIz
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded

Url编码正文:

grant_type=password&client_id=xxxxxx&client_secret=xxxxxx&username=admin&username=xxxxxx

我在没有编码的情况下尝试了编码的身体和身体,它给出了相同的结果。

响应

{
    "error": "server_error",
    "error_description": "access_denied"
}

我在这里遗漏了什么吗?不是" admin"用户是否有权执行此操作并获取令牌?

1 个答案:

答案 0 :(得分:0)

好的,有两件事,

  1. 错误(在正文中键入两次用户名而不是密码)
  2. grant_type =密码&安培; CLIENT_ID = XXXXXX&安培; client_secret = XXXXXX&安培;用户名=管理员&安培;用户名= XXXXXX

    应该是,

    grant_type =密码&安培; CLIENT_ID = XXXXXX&安培; client_secret = XXXXXX&安培;用户名=管理员&安培;密码= XXXXXX

    1. 对于此请求,您不应拥有授权标头。我删除了基本授权标头。它现在正在工作。
    2. <强>回顾,

      使用POSTMAN,

      确保端点为&#34; https://[instance-now].com/oauth_token.do&#34;

      接头: 接受:application / json

      正文(x-www-form-urlencoded)

      grant_type:密码 client_id:xxxxxx client_secret:xxxxxxx 用户名:username_01 密码:password_01

      希望这会有所帮助......