如何获得SmartSheet API的新访问令牌

时间:2016-07-14 13:56:24

标签: postman smartsheet-api

我遇到Postman和SmartSheet获取新访问令牌的问题。

所有网址都以https://为前缀,但StackOverflow不允许这样做。

Callback URL:   www.getpostman.com/oauth2/callback]
Token Name:     Test
Auth URL:       app.smartsheet.com
Access Token URL:  app.smartsheet.com/token
Client ID:  used the one provided when registering my app with SmartSheet
Client Secret: used the one provided when registering my app with SmartSheet
Scope: blank
Grant Type: [Authorization Code]

当我点击Request Token时,它会转到SmartSheet登录。登录并关闭SmartSheet浏览器后,我得到Could not complete OAuth 2.0 Login

2 个答案:

答案 0 :(得分:2)

查看您的示例,Auth URL不正确。那应该是

https://app.smartsheet.com/b/authorize

此外,访问令牌URL应为

https://api.smartsheet.com/2.0/token

Smartsheet OAuth2流程还需要一个Scope,因此尽管Postman说的是,它仍然是空白的。

有关所有这些的更多信息,请参阅文档: http://smartsheet-platform.github.io/api-docs/#oauth-flow

重要的是要注意,所有这一切都正确地设置在Postman仍然不会工作。这是因为Smartsheet获取和刷新令牌Smartsheet的过程需要客户端散列授权代码(使用管道和应用程序机密,使用SHA256),而不是以明文形式发送。这可以说是非标准的,但仍然在OAuth2规范中。有关此过程的更多信息,请参阅我上面提到的文档。

不幸的是,它看起来并不像Postman支持这些类型的偏离" vanilla" OAuth2用户。根据您要完成的任务,您将不得不手动执行该过程的步骤,或者在托管环境中站出第三方应用程序。如果您只想生成令牌,则此方法http://smartsheet-platform.github.io/api-docs/#direct-api-access可能适合您。

答案 1 :(得分:1)

如果您尝试在Postman中进行测试,则可以使用Direct API方法。 http://smartsheet-platform.github.io/api-docs/#direct-api-access

步骤1)转到您的实际智能表“https”:“// app.smartsheet.com/b/home”并在帐户>个人设置> API访问 - 生成令牌(复制它,您将无法关闭后复制)

步骤2)获取工作表的网址。右键单击工作表名称选项卡,然后选择“属性”。复制工作表ID(即123456)。将其添加到网址的末尾:“https”:“// api.smartsheet.com/2.0/sheets/123456”

步骤3)在我看来最困惑的一个。在Postman中选择No Authorization。然后用“Bearer 0da6cf0d848266b4cd32a6151b1”更新标题。你必须有Bearer这个词,随机生成的数字串来自第1步。

然后发送get请求,然后以json格式返回表单。