最近、Bash で Pushbullet Linux コマンド ライン クライアントを作成しました。ユーザーが Oauth を介して Pushbullet アカウントへのアクセスを許可できるようにしたいのですが、問題が発生しています。先日Google Drive APIのOauthをやったばかりです。これはかなり簡単で、数行のコードしか必要としませんでした。正直なところ、Pushbullet API ドキュメントの Oauth セクションはやや不明確です。
必要な手順を理解していることを確認させてください。
- アプリ内で生成された URL を使用してユーザーを Pushbullet サイトに送信する
- URL には次を含める必要があります: client_id および redirect_url (redirect_url は、トークンまたはコードの response_type に加えて、Pushbullet へのアクセスを許可した後にユーザーがリダイレクトされる URL を指定します)
- ユーザーが自分の Pushbullet アカウントへのアクセスを許可または拒否する
- アクセスが許可されると、ユーザーは redirect_url に送信されます
- クライアントは、redirect_url に埋め込まれた access_token を取得し、将来のすべてのリクエストに access_token を追加する必要があります
それは正しいと思いますか?
スクリプトはブラウザに認証 URL を正常にロードしますが、[承認] をクリックすると次のエラーが表示されます: The param 'redirect_uri' has an invalid value
. Pushbullet設定の「clients」セクションにリストされているredirect_uriを使用しました。したがって、この:
https://www.pushbullet.com/login-success/access_token=<access token>&response_type=token&scope=everything
正しい URL を使用していますか? これはコマンドライン クライアントであり、ドメインを持っていません。しかし、それは問題ではありませんよね?
Oauth は常にブラウザー経由の認証を必要としますか、それともある種の Web サービス呼び出し (これは GDrive API がどのように機能するか) を介して行うことができますか? 理想的には、Web ブラウザーのロードについて心配する必要はなく、curl がすべてを処理するようにします。