Недавно я написал клиенту командной строки Pushbullet Linux в Bash. Я хочу разрешить пользователям предоставлять доступ к своим учетным записям Pushbullet через Oauth, но у меня проблемы. На днях я просто сделал Oauth для Google Drive API. Это было довольно просто, требуя всего несколько строк кода. Честно говоря, Oauth section in the Pushbullet API docs несколько неясен.Pushbullet Oauth с использованием Bash и curl
Позвольте мне убедиться, что я понимаю шаги, необходимые:
- Отправить пользователю на сайт Pushbullet с URL, сгенерированные в приложении
- URL должен включать: client_id и REDIRECT_URL (REDIRECT_URL указывает URL пользователь повторно -directed к после предоставления доступа к Pushbullet, в дополнение к response_type, либо маркер или код)
- предоставляет Пользователю или запрещает доступ к учетной записи их Pushbullet
- Если доступ разрешен, пользователь отправляется REDIRECT_URL
- Клиент должен получить access_token встроенных в REDIRECT_URL, а затем добавить access_token для всех будущих запросов
ли этот звук о праве?
Мой сценарий успешно загружает URL-адрес аутентификации в мой браузер, но когда я нажимаю «одобрить», я получаю следующую ошибку: The param 'redirect_uri' has an invalid value
. Я использовал redirect_uri, указанный в разделе «клиенты» настроек Pushbullet. Итак, это: https://www.pushbullet.com/login-success/access_token=<access token>&response_type=token&scope=everything
Я использую правильный URL-адрес? Это клиент командной строки, и у меня нет домена для него. Это не имеет значения, правда?
Обязательно ли аутентификация Oauth требуется для проверки подлинности через браузер или может быть выполнена через какой-либо вызов веб-службы (как работает API GDrive)? В идеале, у меня бы завихрилось бы все, вместо того, чтобы беспокоиться о загрузке веб-браузеров.
Что касается моей проблемы: я до сих пор не могу заставить OAuth работать с 'response_type = токеном'. Я получаю сообщение об ошибке типа недопустимого ответа. Я использовал redirect_uri, который вы предложили. Тем не менее, мне удалось заставить его работать с 'response_type = code', поэтому проблема решена. –
Должен признаться, что я довольно новичок в этом, поэтому любая путаница с моей стороны может быть связана скорее с неопытными, чем с плохой документацией. Между прочим, диаграмма, которую вы сделали, красива и понятна. Честно говоря, документация Google невелика. Я нашел реализацию OAuth для Диска проще, потому что здесь много вопросов о API-интерфейсе Drive. Например, Google плохо справлялся с объяснением областей. Вот ссылка на документы API Google EE REST API (и следуйте содержащейся в нем ссылке на стороне клиента): https://developers.google.com/drive/web/about-auth –