Думаю, я понимаю, как работает OAuth 2.0 в контексте мобильного приложения или веб-сайта - и это не мое дело.
У меня есть приложение командной строки С++ , которое я хочу предоставить одному из сервисов Google (Таблицы Google Fusion), но я думаю, что этот вопрос относится к любому из сервисов Google, или, возможно, к любому приложению командной строки, которое должно иметь дело с OAuth2.
У меня есть имя пользователя. У меня есть пароль (пользователь набрал его). Мне нужно получить токен, чтобы я мог совершать вызовы через Curl. Каков самый простой способ сделать это?
Обновление 1:
После прохождения документации кажется, что наименее болезненный поток OAuth2 будет "Установленное приложение" .
Я думаю, что мой инструмент командной строки будет делать запросы для открытых таблиц, не требуя токена (но, похоже, нам все равно нужно отправлять AppID из Google, который я могу получить с панели инструментов Google API).
Всякий раз, когда моему инструменту командной строки нужно будет использовать частный ресурс, этот пользователь должен будет предоставить предоставленный Google код авторизации (который мой инструмент командной строки может затем использовать для получения полезного токена). Если пользователь не предоставил код авторизации в командной строке, мой инструмент просто напечатает ссылку, которую пользователь может вставить в URL-адрес для создания кода авторизации. Ссылка будет выглядеть так:
Как только пользователь примет, она должна будет вставить этот код авторизации на терминал, чтобы он мог использоваться инструментом командной строки. Инструмент командной строки будет использовать код авторизации, чтобы попросить Google использовать токен, а затем, наконец, я смогу использовать токен Google, чтобы вызвать вызовы API.
Мне все еще не ясно. Изменен ли код авторизации? Если это так, мне кажется, мне нужно будет сохранить токены и обновить токены где-нибудь, чтобы я мог повторно использовать токен обновления каждый раз, когда токен истекает.
Это только я, или все это кажется сумасшедшим, так что я могу использовать API Google из командной строки?
Обычно я использовал поток ClientLogin, но все, кажется, указывает, что он будет устаревшим в ближайшее время.