Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2018, 02:30   #1
SadiQ228
Пользователь
 
Регистрация: 30.10.2017
Сообщений: 66
По умолчанию gmail OAuth 2.0 как получить access token?

Юзая cURL для удобства понимая происходящего
у меня есть clientID и clientSecret
не могу понять как быть далее? что и куда отправить чтобы получить токен?
SadiQ228 вне форума Ответить с цитированием
Старый 19.05.2018, 09:55   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Начните вот отсюда: https://developers.google.com/identi...h2InstalledApp

Будет легче, если знаете что такое OAuth и как это работает.
waleri вне форума Ответить с цитированием
Старый 19.05.2018, 22:26   #3
SadiQ228
Пользователь
 
Регистрация: 30.10.2017
Сообщений: 66
По умолчанию

я в принципе понял что это и как, я получил клиент ID и клиент secret, дальше не могу понять как и куда их отправить чтобы получить акцесс токен, помогите если есть такая возможность, не кодом так словами
SadiQ228 вне форума Ответить с цитированием
Старый 20.05.2018, 00:20   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Там все описано по шагам - который шаг непонятен?
waleri вне форума Ответить с цитированием
Старый 20.05.2018, 00:49   #5
SadiQ228
Пользователь
 
Регистрация: 30.10.2017
Сообщений: 66
По умолчанию

Спасибо что не игнорируете!
конеретно я шаг 2 не могу понять
Первое:
Цитата:
Во время запроса доступа к токен ваше приложение отправляет одно или несколько значений в scope параметр.
что за параметры? образец сформированного запроса?

Второе:
Цитата:
Существует несколько способов сделать этот запрос, и они зависят от типа используемого вами приложения.
как определить этот тип?
я хочу чтобы мое приложение могло заходить на разные gmail почты.

Третье:
Цитата:
Например, приложение JavaScript может запрашивать токен доступа с помощью переадресации браузера в Google, а приложение, установленное на устройстве без браузера, использует запросы веб-службы.
я так понял у менян все то же самое, в cURL врублю ридирект и погнали?

Четвертое:
как автоматом получать соглашение пользователя?

Последнее:
Цитата:
Как правило, лучше всего запрашивать области поэтапно
в моем случае при доступе к списку писем, у меня лишь одна область верно? тоесть эти этапы мне до лампочки?
я прошу прощения за глупые вопросы, в первые сталкиваюсь, возможно они помогут кому то в будущем
SadiQ228 вне форума Ответить с цитированием
Старый 20.05.2018, 09:56   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от SadiQ228 Посмотреть сообщение
что за параметры? образец сформированного запроса
Ну так чуть ниже есть пример запроса. Ищите "Sample authorization URLs"
Цитата:
Сообщение от SadiQ228 Посмотреть сообщение
хочу чтобы мое приложение могло заходить на разные gmail почты
Не вопрос, авторизуетесь для каждой почты отдельно, получите токены для каждой почты.
Цитата:
Сообщение от SadiQ228 Посмотреть сообщение
как автоматом получать соглашение пользователя?
Никак, естественно.
Цитата:
Сообщение от SadiQ228 Посмотреть сообщение
в cURL врублю ридирект и погнали
Нет, это вам не поможет.
Это нужно для веб сайтов, тогда после авторизации клиента перенаправляют на страницу, куда будет передан полученный токен.
Для приложений этот способ не самый удачный - у приложения должен быть веб сервер, что не будет работать, если например клиент находится за NAT-ом.
waleri вне форума Ответить с цитированием
Старый 20.05.2018, 13:45   #7
SadiQ228
Пользователь
 
Регистрация: 30.10.2017
Сообщений: 66
По умолчанию

я выложу пример кода наверное чуть позже, прошу дать оценку ему
SadiQ228 вне форума Ответить с цитированием
Старый 23.05.2018, 02:27   #8
SadiQ228
Пользователь
 
Регистрация: 30.10.2017
Сообщений: 66
По умолчанию

Вот если исходить из мысли что у меня нет сайта моего приложения, то какие данные отправлять? ну всмысле вставить в API консоль?
вот такой запрос не работает с ошибкой я указал все example.com
Цитата:
HTTP/1.1 400 Bad Request
Код:
int main()
{
	const char * code_verifier = "test-nev.l00l808865290258-nevl00l808865290258.-nevl00l80885290258-nevl00l808865290258-nevl00l";
	const char * login = "test@gmail.com";
	const char * password = "test";
	
	const char * Authorization = "Basic ODA4ODY1MjkwMjU4LW5ldmwwMGxxZzhkaTd1aGlqbG1tdTE1MWF0dHRnazgzLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tOjhrWkZlNEttLUZmNnRYQVJlQjgtaUxkSA==";
	const char * clientID = "test65290258-nevl00lqg8di7uhijlmmu151atttgk83.apps.googleusercontent.com";
	const char * clientSecret = "test-Ff6tXAReB8-iLdH";
		
	CURL *curl;
	CURLcode res = CURLE_OK;

		curl = curl_easy_init();
		if (curl) {
			
			curl_easy_setopt(curl, CURLOPT_URL, "https://accounts.google.com/o/oauth2/v2/auth?scope=test@gmail.com&response_type=code&state=security_token%3D138r5719ru3e1%26url%3Dhttps://oauth2.example.com/token&redirect_uri=urn:ietf:wg:oauth:2.0:oob:auto&&client_id=test0258-nevl00lqg8di7uhijlmmu151atttgk83.apps.googleusercontent.com");/* HTTPs  Запрос */
			curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);// не проверять SSL сертификат
			curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);// не проверять Host SSL сертификата
			curl_easy_setopt(curl, CURLOPT_HEADER, 1); //показывать заголовки
			res = curl_easy_perform(curl);
			if (res != CURLE_OK)
				fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
			curl_easy_cleanup(curl);
		}
}
укажите на ошибку

Последний раз редактировалось SadiQ228; 23.05.2018 в 02:37.
SadiQ228 вне форума Ответить с цитированием
Старый 23.05.2018, 05:02   #9
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Та все не верно ....если запрос GET, то где url кодирование ссылки? Там не допустимые символы... для POST вообще все не так...возьмите вот эти файлы за основу использования curl

https://github.com/intel-iot-devkit/...restclient-cpp
alexzk вне форума Ответить с цитированием
Старый 23.05.2018, 22:46   #10
SadiQ228
Пользователь
 
Регистрация: 30.10.2017
Сообщений: 66
По умолчанию

del

Последний раз редактировалось SadiQ228; 24.05.2018 в 01:59.
SadiQ228 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
cURL как отключить oauth? SadiQ228 C/C++ Сетевое программирование 1 19.05.2018 09:03
Как получить список таблиц другой базы Access anevgeniy69 Microsoft Office Access 2 12.11.2012 17:40
Фреймы как в gmail keen_ HTML и CSS 3 12.12.2011 01:19
Диалоговое окно как на Gmail или что-то подобное по дизайну zargandr1 HTML и CSS 9 11.12.2011 20:19
как анонимно зайти на gmail.com? linna Помощь студентам 2 27.05.2009 20:12