我最近在 Bash 中编写了一个 Pushbullet Linux 命令行客户端。我想允许用户通过 Oauth 授予对其 Pushbullet 帐户的访问权限,但我遇到了一些麻烦。前几天我刚刚为 Google Drive API 做了 Oauth。它相当简单,只需要几行代码。老实说,Pushbullet API 文档中的 Oauth 部分有些不清楚。
让我确保我了解所需的步骤:
- 使用应用内生成的 URL 将用户发送到 Pushbullet 站点
- URL 应包括:client_id 和 redirect_url(redirect_url 指定用户在授予 Pushbullet 访问权限后重定向到的 url,除了 response_type,令牌或代码)
- 用户授予或拒绝访问其 Pushbullet 帐户
- 如果授予访问权限,则将用户发送到 redirect_url
- 客户端必须获取嵌入在 redirect_url 中的 access_token,然后将 access_token 附加到所有未来的请求中
那个听起来是对的吗?
我的脚本在我的浏览器中成功加载了身份验证 URL,但是当我单击“批准”时,我收到以下错误:The param 'redirect_uri' has an invalid value
. 我使用了 Pushbullet 设置的“客户端”部分中列出的 redirect_uri。所以这:
https://www.pushbullet.com/login-success/access_token=<access token>&response_type=token&scope=everything
我使用了正确的网址吗?这是一个命令行客户端,我没有它的域。不过,这应该没关系,对吧?
Oauth 是否总是需要通过浏览器进行身份验证,还是可以通过某种 Web 服务调用来完成(这就是 GDrive API 的工作方式)?理想情况下,我会让 curl 处理所有事情,而不必担心加载 Web 浏览器。