Использование компонента GoogleLogin Delphi

 


Как видим вроде ни чего экстраординарного все просто и со вкусом
На форме имеем 3 кнопки, по средством которых и происходит либо авторизация пользователя, очистка памяти занимаемой компонентом (уничтожение его (после этого доступ к нему не возможен и вызовет исключительную ситуацию)) и авторизация с капчей.

 Рассмотрим авторизацию
Для того чтобы авторизироваться необходимо заполнить поля компонента email иpassword после чего вызвать метод класса Login после чего выполниться формирование запроса и создание потока в котором, произойдет обмен данными между нашей программой и сервером google. После чего если введенные данные для авторизации были верны произойдет событие OnAutorization так же оно может возникнуть в любом другом случае исключая случай ошибки для которого есть отдельное событие onerror и случай необходимости ввода текста с картинки(капча) у которого так же есть свое событие OnAutorizCaptcha.

Посмотрим реализацию моих слов в Delphi 
procedure TForm11.Button1Click(Sender: TObject);
begin
if not Assigned(GoogleLogin1) then
begin
  ShowMessage('Уже убили');
  Exit;
end;
//почтовый ящик обязательно gmail
GoogleLogin1.Email:=EmailEdit.Text;
//пароль к нему
GoogleLogin1.Password:=PassEdit.Text;
//выбираем сервис 
GoogleLogin1.Service:=TServices(ComboBox1.ItemIndex);
Memo1.Clear;//очистка лога
//запускаем процесс авторизации
GoogleLogin1.Login();
end;

Событие посредством, которого мы передаем полученные данные в результате авторизации на гугле в другие компоненты

procedure TForm11.GoogleLogin1Autorization(const LoginResult: TLoginResult;Result: TResultRec);
var
  temp:string;
begin
  ResultEdit.Text:=Result.LoginStr;
  AuthEdit.Text:=Result.Auth;
  temp:=GetEnumName(TypeInfo(TLoginResult),Integer(LoginResult));
  Edit1.Text:=temp;
  if LoginResult =lrOk then
    ShowMessage('Мы в гугле!!!!!!!!!')
  else
    ShowMessage('Мы НЕ в гугле!!!!!!!!!');
end;

В случае успешной авторизации мы увидим подобное этому



А в случае неудачной авторизации


 Так вот специально для эксперимента введем неверный пароль и выполним несколько раз авторизацию до появления капчи по текстом по ее использованию.

Должны увидеть, что-то подобное



Вводим текст в Edit находящийся ниже капчи и нажимаем на кнопку Авторизация после ввода капчи. 
Обработчик нажатия этой кнопки
procedure TForm11.Button3Click(Sender: TObject);
begin
  if edtCaptcha.Text<>'' then
  begin
    imgCaptcha.Picture:=nil;
    GoogleLogin1.Email:=EmailEdit.Text;
    GoogleLogin1.Password:=PassEdit.Text;
    GoogleLogin1.Captcha:=edtCaptcha.Text;
  end;
end;
Как видите тут нет вызова GoogleLogin1.Login(); или чего нибудь подобного, а просто свойству GoogleLogin1.Captcha присваивается значение, которое автоматически производит авторизацию.
Ни чего больше писать не нужно, только передавать значение капчи и все.

В случае успешной авторизации так же произойдет событие OnAutorizCaptcha

Вроде все сказал, если, что- то не понятно пишите, постараюсь ответить всем.

 

Установка компонента в Delphi 2010

Для установки компонента необходимо зайти в папку  googleapi\packages\googleLogin_pack
в ней найти файл GoogleLogin.dpk открыть его в среде Delphi 2010 (он был написан в ней)
в настройках среды прописать переменные окружения, в общем указать путь  (где то на диске)\googleapi\packages\googleLogin_pack\ после чего в менеджере проекта нажать на надписи GoogleLogin.bpl правой клавишей мыши и выбрать пункт меню Install после чего если вы все сделали правильно должно появиться окно с информацией о том, что компонент успешно установлен в систему

 




Теперь все закрываем  File-Close All
Создаем новый проект, в котором мы хотим использовать только, что установленный компонент
Ищем вкладку WebDelphi.ru моей вкладки там нет))


Выбираем не визуальный компонент TGoogleLogin и кладем его на форму приложения.


Свойства компонента

В Object inspector видим свойства


Свойство  AccountType
Тип аккаунта, для которого выполняется аутентификация. Возможные значения:
GOOGLE (выполнить аутентификацию аккаунта Google) 
HOSTED (выполнить аутентификацию размещенного аккаунта) 
HOSTED_OR_GOOGLE (выполнить аутентификацию размещенного аккаунта; в случае неудачи выполнить аутентификацию аккаунта Google)
Используйте значение HOSTED_OR_GOOGLE, если вы не уверены, для какого типа аккаунта потребуется выполнить аутентификацию. Если регистрационные данные пользователя соответствуют как аккаунту Google, так и размещенному аккаунту, аутентификация будет выполнена только для размещенного аккаунта.

Свойство AppName 
Строка, которая отправляется серверу google  для инициализации приложения, которое выполняет с ним соединение.  Данная строка введена для эмуляции браузера или подобного приложения, на случай если google закроет доступ неизвестным ему приложениям 

Свойство Email
Адрес  электронной почты, используемый сервером google, как логин, он необходим для авторизации на сайте.

Свойство Name
Название компонента для обращения к его свойствам и методам в среде delphi

Свойство Password
Пароль пользователя необходимый для авторизации на сайте

Свойство Service
Это список сервисов google в котором нужно выбрать сервис на котором необходимо авторизоваться.

Свойство Tag
Можно использовать для хранения чисел


События компонента 

В Object inspector видим события


Событие OnAutorization
Событие, возникающее после выполнения авторизации на сайте и получения всех необходимых данных для последующего их использования в других компонентахGoogleApi которым эти данные необходимы для идентификации пользователя на сайте google или сервисе googl’a

Событие OnDisconnect
Событие возникающее при вызове метода  Disconnect компонента которое выполняет сброс значений полей в свойствах компонента кроме Tag,Name к значениям по умолчанию (тем которые были при бросании компонента на форму).

Событие onerror
Событие возникающее в случае исключительной ситуации при соединении с сервером или сервисом google

Событие OnProgressAutorization
Данное событие было написано специально для любителей визуализации прогресса выполнения каких либо операций или подсчетов в программе, оно показывает прогресс выполнения авторизации, а конкретнее прогресс скачивания станицы с сайта google


Описание событий и их параметров

OnAutorization (const LoginResult: TLoginResult;Result: TResultRec);
LoginResult содержит в случае успешной авторизации lrOk
В других случаях может быть все, что угодно из lrNone, lrOk, lrBadAuthentication, lrNotVerified,
lrTermsNotAgreed, lrCaptchaRequired, lrUnknown, lrAccountDeleted, lrAccountDisabled, lrServiceDisabled, lrServiceUnavailable

Result это структура содержащая непосредственно данные необходимые для идентификации на сайте гугла 
 LoginStr: string; // текстовый результат авторизации
 SID: string; // в настоящее время не используется
 LSID: string; // в настоящее время не используется
 Auth: string;


onerror(const ErrorStr: string);
ErrorStr текстовое описание ошибки возникшей при выполнении «авторизации на сайте google»

OnProgressAutorization(const Progress, MaxProgress: Integer);
Progress текущее значение выполняемой задачи 
MaxProgress максимальное значение выполняемой задачи 

Пример использования компонента можно скачать отсюда

dle

Помоги проекту! Расскажи друзьям об этом сайте: