我遇到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
。
答案 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格式返回表单。