"The client ID is missing or invalid" 在 OAuth 请求中

"The client ID is missing or invalid" in OAuth request

我正在尝试使用 http://smartsheet-platform.github.io/api-docs/?shell#oauth-flow 中的说明在我的应用程序和 Smartsheet 之间设置 OAuth2 流程。

当用户提交 Smartsheet 的授权对话框时,client_id 参数似乎丢失了。这是我看到的:

我的网页显示 link 到 https://app.smartsheet.com/b/authorize?response_type=code&client_id=[my_client_id]&scope=READ_SHEETS%20WRITE_SHEETS%20SHARE_SHEETS

(从这里开始,我将省略 URL 中的协议和域,因为我在 Stack Overflow 上发布的内容太少,以至于我无法在一个问题中包含两个以上的 link!)

我点击那个 link,然后结束 /b/authorize?formName=fn_authorize&formAction=fa_loadAuthorize&response_type=code&client_id=[my_client_id]&scope=READ_SHEETS+WRITE_SHEETS+SHARE_SHEETS 。该对话框显示了我网站的徽标和名称,因此我知道 client_id 是正确的。

然后我单击 "Allow" 并在 /b/authorize?formName=fn_authorize&formAction=fa_loadAuthorize&redirect_uri= 处看到消息 "The client ID is missing or invalid" [我的重定向 uri]

我已经检查了几次说明以确保我生成的 URI 有效,并且在使用和不使用 redirect_uri 参数的情况下都进行了尝试。

我可能做错了什么?

即使使用完全从您的 post/question 复制的 oAuth URL,我也无法重现您描述的问题。这是我的测试场景的回顾:

  1. 创建了新的 "App"(通过 Smartsheet UI 中的 Developer Tools)以生成客户端 ID 和应用密码。

  2. 将用户重定向到:https://app.smartsheet.com/b/authorize?response_type=code&client_id=[my_client_id]&scope=READ_SHEETS%20WRITE_SHEETS%20SHARE_SHEETS

  3. 用户点击允许。

  4. 用户已成功重定向到我的应用程序配置设置中指定的重定向 URL。

因此,Smartsheet oAuth 似乎运行成功。这似乎表明可能是您的应用程序配置设置特定的东西导致了您的问题。一些故障排除建议:

  • 尝试编辑您的应用程序配置设置,以(暂时)将 应用程序重定向 URL 的值替换为简单的值,例如:http://www.google.com -- 然后再次测试 oAuth 流程。如果它适用于新的重定向 URL,这表明 Smartsheet 无法重定向到您的原始重定向 URL 的问题(并且 "client id is missing or invalid" 错误消息并不是真正准确的消息).

  • 如果更改重定向 URL 无法解决错误——也许可以尝试创建一个新的应用程序(通过 Developer Tools Smartsheet UI),并使用新应用程序的客户端 ID 尝试相同的 oAuth 流程。如果由于某种原因,应用程序出现问题导致您现在出现错误,那么重新开始使用新应用程序可能会解决您的问题。