Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 1
Регистрация: 19.05.2017
Сообщений: 48

Авторизация в сервисах Google

23.10.2017, 22:16. Показов 2163. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как авторизоваться в сервисах google через php скрипт?

Добавлено через 30 секунд
Через curl я не понимаю как

Добавлено через 2 минуты
Может как то через библиотеку Snoopy?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.10.2017, 22:16
Ответы с готовыми решениями:

Авторизация в web-сервисах
Как сделать авторизацию в своём веб-серсиве по логину и паролю? В свойствах вебсервиса в безопастности - "Default access for thys...

Benq JoyBook S72 невозможно авторизоваться в сервисах Яндекса и Google
Ситуация. Очень странное происходит с ноутбуком. Невозможно авторизоваться в сервисах Яндекса и Google. В случае с Яндексом в браузерах...

Вопрос о регистрации в рекламных сервисах типа Бегун, Google Adsense и пр.
Например я регестрируюсь в бегуне в качестве партнера для получения рекламного блока для своего сайта, при этом на сайте бегуна написано, ...

18
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
29.10.2017, 12:42
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
 
/**
 * Log in to Google account and go to account page
 *
 */
 
$USERNAME = 'youraccount@gmail.com';
$PASSWORD = 'password';
$COOKIEFILE = 'cookies.txt';
 
// initialize curl handle used for all requests
$ch = curl_init();
 
// set some options on the handle
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $COOKIEFILE);
curl_setopt($ch, CURLOPT_COOKIEFILE, $COOKIEFILE);
curl_setopt($ch, CURLOPT_HEADER, 0);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
 
// url of our first request fetches the account login page
curl_setopt($ch, CURLOPT_URL, 
  'https://accounts.google.com/ServiceLogin?hl=en&service=alerts&continue=http://www.google.com/alerts/manage');
$data = curl_exec($ch);
 
// extract form fields from account login page
$formFields = getFormFields($data);
 
// inject email and password into form
$formFields['Email']  = $USERNAME;
$formFields['Passwd'] = $PASSWORD;
unset($formFields['PersistentCookie']);
 
$post_string = http_build_query($formFields); // build urlencoded POST string for login
 
// set url to login page as a POST request
curl_setopt($ch, CURLOPT_URL, 'https://accounts.google.com/ServiceLoginAuth');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
 
// execute login request
$result = curl_exec($ch);
 
// check for "Redirecting" message in title to indicate success
// based on your language - you may need to change this to match some other string
if (strpos($result, '<title>Redirecting') === false) {
    die("Login failed");
    var_dump($result);
}
 
// login likely succeeded - request account page; unset POST so we do a regular GET
curl_setopt($ch, CURLOPT_URL, 'https://myaccount.google.com/?utm_source=OGB');
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, null);
 
// execute request for login page using our cookies
$result = curl_exec($ch);
 
echo $result;
 
 
// helpef functions below
 
// find google "#gaia_loginform" for logging in
function getFormFields($data)
{
    if (preg_match('/(<form.*?id=.?gaia_loginform.*?<\/form>)/is', $data, $matches)) {
        $inputs = getInputs($matches[1]);
 
        return $inputs;
    } else {
        die('didnt find login form');
    }
}
 
// extract all <input fields from a form
function getInputs($form)
{
    $inputs = array();
 
    $elements = preg_match_all('/(<input[^>]+>)/is', $form, $matches);
 
    if ($elements > 0) {
        for($i = 0; $i < $elements; $i++) {
            $el = preg_replace('/\s{2,}/', ' ', $matches[1][$i]);
 
            if (preg_match('/name=(?:["\'])?([^"\'\s]*)/i', $el, $name)) {
                $name  = $name[1];
                $value = '';
 
                if (preg_match('/value=(?:["\'])?([^"\'\s]*)/i', $el, $value)) {
                    $value = $value[1];
                }
 
                $inputs[$name] = $value;
            }
        }
    }
 
    return $inputs;
}
1
1 / 1 / 1
Регистрация: 19.05.2017
Сообщений: 48
01.11.2017, 00:14  [ТС]
getFormFields($data)
эта функция выдаёт "didnt find login form"

Добавлено через 1 час 4 минуты
заменил на 74 строке регулярное выражение на '/(<form class="[\w].*?".*?<\/form>)/m' , начало выдавать Login failed
1
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
01.11.2017, 10:51
Видимо изменили страницу входа, сейчас она содержит javascript формирование формы, видимо для защиты от автоматизированного входа.
Поэтому лучше этого не делать.
1
1 / 1 / 1
Регистрация: 19.05.2017
Сообщений: 48
01.11.2017, 16:35  [ТС]
но ведь можно как то и это обойти?
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
01.11.2017, 18:08
Это антирелигиозно. Если программисты пишут защиту от входа и обход защиты от входа, значит они заняты бесполезной работой. Эффект от которой ноль.

Вы можете использовать почту гугла, веб-сервисы с авторизацией через веб-приложение, обратиться в гугл с просьбой упростить аторизацию для иных нужд.
1
1 / 1 / 1
Регистрация: 19.05.2017
Сообщений: 48
01.11.2017, 19:45  [ТС]
Тоесть вы мне не поможете?
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
02.11.2017, 07:10
Объясните, зачем вам нужна авторизация на сайте google.com
1
1 / 1 / 1
Регистрация: 19.05.2017
Сообщений: 48
02.11.2017, 19:58  [ТС]
ytf, Чтобы через аккаунт гугл авторизоваться на другом сайте
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
02.11.2017, 20:47
на каком сайте?
1
1 / 1 / 1
Регистрация: 19.05.2017
Сообщений: 48
02.11.2017, 21:04  [ТС]
разве это имеет значение?
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
02.11.2017, 21:09
имеет
1
1 / 1 / 1
Регистрация: 19.05.2017
Сообщений: 48
02.11.2017, 21:26  [ТС]
letyshops
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
02.11.2017, 21:36
а с какой целью входить на этот сайт с помощью гугл аккаунт, если есть прямая регистрация?
1
1 / 1 / 1
Регистрация: 19.05.2017
Сообщений: 48
02.11.2017, 21:51  [ТС]
мне нужно именно через гугл
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
03.11.2017, 07:34
вы не объяснили необходимость входа через гугл

если нужен новый аккаунт - вопрос решается новой регистрацией
если нужно использовать существующий - обычно есть возможность прямого входа, в том числе можно спросить у админа сайта, с каким логином надо входить, если раньше входил с помощью гугл-аккаунт
1
1 / 1 / 1
Регистрация: 19.05.2017
Сообщений: 48
05.11.2017, 22:48  [ТС]
у меня цель это авторизоваться в гугле и записать это в куки curl
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
06.11.2017, 09:34
ладно, не хотите отвечать, ваше право
1
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
06.11.2017, 09:56
https://developers.google.com/apps-script/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.11.2017, 09:56
Помогаю со студенческими работами здесь

Авторизация Google
День добрый, Господа, помогите в решение вопроса о том, как в приложении сделать привязку к акк в гугл. к примеру, хочу сделать...

Авторизация в google
Google требует Oauth2 для работы с google drive Как это реализовать буду признателен за примеры (в идеале рабочий код)

Авторизация скриптом в Google
Привет всем, буду признателен за помощь. Хочу написать скрипт для авторизации в Google. Делаю запрос POST при помощи curl. Высылаю...

Авторизация через vk ok facebook google+ c#
Во мнегох приложениях есть авторизация через ,facebook,ok,google+ Я понимаю как сделать ввод пароля и логина и через api залогинится ...

Авторизация через аккаунт Google
Добрый день! Помогите пожалуйста реализовать регистрацию и авторизацию пользователей в приложение созданным в Android Stuio через Google...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru