0

最近、Bash で Pushbullet Linux コマンド ライン クライアントを作成しました。ユーザーが Oauth を介して Pushbullet アカウントへのアクセスを許可できるようにしたいのですが、問題が発生しています。先日Google Drive APIのOauthをやったばかりです。これはかなり簡単で、数行のコードしか必要としませんでした。正直なところ、Pushbullet API ドキュメントの Oauth セクションはやや不明確です。

必要な手順を理解していることを確認させてください。

  1. アプリ内で生成された URL を使用してユーザーを Pushbullet サイトに送信する
  2. URL には次を含める必要があります: client_id および redirect_url (redirect_url は、トークンまたはコードの response_type に加えて、Pushbullet へのアクセスを許可した後にユーザーがリダイレクトされる URL を指定します)
  3. ユーザーが自分の Pushbullet アカウントへのアクセスを許可または拒否する
  4. アクセスが許可されると、ユーザーは redirect_url に送信されます
  5. クライアントは、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 がすべてを処理するようにします。

4

1 に答える 1

0

うーん、図も作成しましたが、ドキュメントにはまだ作業が必要だと思います。何か提案があれば教えてください!

したがって、「クライアント側」フローを使用する場合は、redirect_uriofを使用する必要がhttps://www.pushbullet.com/login-successあります。これは、authorize_url が次のようになることを意味します。https://www.pushbullet.com/authorize?client_id=YW7uItOzxPFx8vJ4&redirect_uri=https%3A%2F%2Fwww.pushbullet.com%2Flogin-success&response_type=token これは HTTP であるため、ここに貼り付けたように、redirect_uri を urlencode する必要があることに注意してください。それでも無効な redirect_uri であることがわかる場合は、次のページでクライアントの redirect_uri を設定してみhttps://www.pushbullet.com/login-successてください: https://www.pushbullet.com/#settings/clients

の意味がわかりませんhttps://www.pushbullet.com/login-success/access_token=<access token>&response_type=token&scope=everything。という意味だったのかもしれませhttps://www.pushbullet.com/login-success?access_token=<access token>&response_type=token&scope=everythingんが、これらのパラメーターをredirect_uri.

ここで考えられることの 1 つはhttps://www.pushbullet.com/login-success、クライアントの設定に関係なく、すべてのクライアントに対して作業できるようにすればredirect_uri、これがより簡単になる可能性があるということです。不明な点を教えてください。修正できます。

あなたが話している特定の Google OAuth を使用したことはありませんが、一般的な Google OAuth に関する私の経験は、これまで使用した OAuth 実装の中で最も複雑で使いにくいものでした。OAuth がどのように使いやすくなったかを確認できるように、参照しているものへのリンクを教えていただけますか?

于 2015-08-25T06:25:55.040 に答える