- Авторизация через Google в Android и проверка токена на сервере
- Небольшая подготовка
- Добавляем действие на кнопку
- Необходимые области доступа
- Регистрация нашего приложения.
- Код получения токена
- Проверяем токен на сервере. (PHP)
- Dadaviz
- Com.google.android.gms — что это за процесс
- Что это такое?
- Ошибки, связанные с com.google.android.gms
- Что такое Com.Android.Server.Telecom в телефоне Android?
- Что такое Com.Android.Server.Telecom?
- android.clients.google.com что это за файл, программа?
- Что такое android.clients.google.com
- android.clients.google.com блокирует доступ к Google Play
- Не удалось связаться сервером Google. Повторите попытку позже
- Заключение
- Set up Google Play services
- Declare dependencies for Google Play services
- Check whether Google Play services is installed
- Google Play services dependencies
- Gradle plugins
Авторизация через Google в Android и проверка токена на сервере
Недавно мне захотелось создать личный проект на андроиде, и основной вопрос был такой: как однозначно идентифицировать пользователя заставляя его делать как можно меньше телодвижений? Конечно же это аккаунт Google. Я пытался пробовать множество примеров в сети — однако API несколько раз обновилось за время своего существования, многие методы не работали, мои вопросы в Google+ по этому поводу либо были вообще никак не восприняты окружением, либо были вроде «Никогда такое не делал».
В этой статье я постараюсь как можно более просто для новичков (вроде меня) описать мой метод авторизации в Google на андроид, получения токена и проверке этого самого токена на сервере.
Небольшая подготовка
Для начала — у вас должны быть установлены Google Play Services в SDK. После их установки можно будет импортировать все необходимые библиотеки. Статья пишется с расчетом на Android Studio — он сам подсказывает, что необходимо импортировать.
У вас должно быть создано активити с кнопкой.
Чтобы было привычнее пользователю можете создать стандартную кнопку Google+ Sing-In
Выглядеть она будет вот так:
Просто добавьте в ваш Layout:
Добавляем действие на кнопку
Пишем в нашем активити:
Собственно присвоим кнопке действие — вызов интенда выбора аккаунта. Если вы работаете в Android Studio он сам вам подскажет, какие библиотеки нужно импортировать, так что это подробно тут я расписывать не буду.
startActivityForResult(intent, 123); — задает код с которым произойдет возврат. 123 это код возврата, он может быть каким угодно. Это необходимо, когда вы делаете несколько интендов, и вам надо обработать их по разному.
Необходимые области доступа
Обьявите эти переменные в классе. Это необходимые нам области доступа. Первый написано в google: «Позволяет определить аутентифицированного пользователя. Для этого при вызове API необходимо указать me вместо идентификатора пользователя Google+. » Второе разрешение нам необходимо для получения личных данных пользователя (Имя, Фамилия, адрес G+ страницы, аватар), и последнее для получения E-mail. Я посчитал это важным, ведь это вполне неизменный идентификатор для записи в бд.
Регистрация нашего приложения.
Изначально забыл этот пункт — исправляюсь.
Нам необходимо зайти на code.google.com/apis/console создать там проект, зайти в Credentials и создать новый Client ID для OAuth выбрав пункт Installed Application -> Android. Там нам необходимо ввести название нашего пакета и SHA1 сумму нашего ключа.
С этим у меня на самом деле было много проблем решил достаточно костыльным способом.
Нашел debug.keystore в %USERPROFILE%\.android\debug.keystore поместил в папку с проектом и прописал в build.grandle:
После чего нам нужно выполнить команду:
keytool -exportcert -alias androiddebugkey -keystore
/.android/debug.keystore -v -list
Сам keytool можно найти в SDK. Из вывода копируем SHA1 в нужное поле.
Как я понимаю метод временный, и для нормальной работы надо создать нормальный ключ. Но для тестирования этого достаточно.
Код получения токена
Где 123 — ваш код, который вы указали ранее, где AcrivityName — название вашего актитивити. Грубо говоря — мы скармливаем функции получения токена необходимые разрешения и имя аккаунта. И заметьте — это все происходит в фоновом режиме, после чего полученный токен передается в написанную мною функцию reg. Она уже отправляет токен и все необходимые данные на сервер.
Так как разрабатываю недавно, с исключениями пока что беда, если есть предложение — напишите в личку или в комментарии.
Проверяем токен на сервере. (PHP)
Хочу обратить внимание, полученный нами токен имеет тип Online. И действует он лишь 10 минут. Для получения offline токена (чтобы дольше работать с ним с сервера) обратитесь к этой инструкции developers.google.com/accounts/docs/CrossClientAuth
Собственно скармливаем токен в googleapis и забираем полученный JSON ответ.
Источник
Dadaviz
Ваш IT помощник
Com.google.android.gms — что это за процесс
Наш небольшой обзор затронет важное приложение на Андроид девайсах. Вы узнаете что это за процесс com.google.android.gms — отчего возникают ошибки, связанные с его работой и как их лечить.
В процессе работы Андроид устройства, постоянно возникают системные сбои или ошибки приложений. Так, все чаще многие пользователи смартфонов, сталкиваются с проблемой нестабильной работы программы com.google.android.gms. Кто-то получает уведомления о том, что одноименный процесс остановлен или произошла ошибка. Мы разобрались что это такое и как устранить все баги, связанные с его работой.
Что это такое?
Com.google.android.gms — это фоновый процесс, отвечающий за работу приложения Google Mobile Services (GMS). Программа GMS — это лицензированное приложение от Гугл, отвечающее за фоновую работу следующих сервисов на Андроиде — Сервисы Google Play, Play market, Gmail, Chrome, Maps, Youtube, Translate, Waze и др.
Это приложение играет важную роль на телефоне, так как отвечает за загрузку системных обновлений программ и игровых сервисов, а также обеспечивает работу многих ключевых функций на Android-устройствах. Для стабильной работы требуется 1-2% системной памяти.
Ошибки, связанные с com.google.android.gms
На многих телефонах с OS Android то и дело возникают различные накладки, связанные с работой программки GMS. Это два основных бага — процесс остановлен или произошла ошибка в com.google.android.gms.persistent.
Причины возникновения нестабильной работы могут быть разные:
- ошибка синхронизации учетной записи Гугл на телефоне;
- нехватка системной памяти;
- криво установленные обновления;
- влияние вирусных программ и др.
Метод исправления таких ошибок, в принципе, стандартный:
- Для начала проверьте, что бы память телефона не была забита;
- Далее перейдите в настройки — диспетчер приложений. Во вкладке Все или Работающие отыщите запущенную службу com.google.android.gms — очистите кэш и перезапустите её. Также процесс может быть прописан как Службы Google или MobileSyncService.
- Отключите синхронизацию учетной записи Гугл и снова авторизуйтесь;
- Примените обновления для Андроид приложений, в первую очередь: Сервисы Google Play, Плей Маркет.
- Перезагрузите телефон и примените системную очистку от мусора на Андроиде.
Данные методы должны исправить проблему и настроить стабильную работу на Андроид телефоне.
Источник
Что такое Com.Android.Server.Telecom в телефоне Android?
Многие люди, просмотрев его в истории, думают, что их звонки отслеживаются каким-то вредоносным приложением. Но наличие Com.Android.Server.Telecom в вашем поиске не должно вызывать беспокойства. Это вполне нормальный процесс, обязательный для управления телефонными звонками. Прочтите эту статью, и вы сможете узнать, что такое Com.Android.Server.Telecom и для чего он нужен.
Что такое Com.Android.Server.Telecom?
com.android.server.telecom — одна из важнейших частей Android-смартфонов. Все мы знаем, что самое первое, для чего предназначен смартфон, — это совершать телефонные звонки. Мы не можем представить смартфон без возможности звонка. Все функции вызова возможны только благодаря Com.Android.Server.Telecom.
Это часть платформы Android Telecom. Это набор кодов, доступных в Android AOSP. Эти коды используются каждый раз при совершении звонков. Эти вызовы включают обычные служебные вызовы, вызовы VOIP, вызовы Wi-Fi и вызовы VOIP через сторонний SIP. Поэтому в следующий раз, когда вы увидите это в своей активности Google, не думайте, что что-то вредоносное происходит в вашем смартфоне и вашем шпионе.
Источник
android.clients.google.com что это за файл, программа?
Что такое android.clients.google.com? Адрес сервера, файл или программа. Многие пользователи часто ищут такой вопрос на просторах Интернета. В сегодняшней статье мы постараемся понятным языком рассказать что это за сервер и для чего используется. А так же как злоумышленники могут использовать вирусы и зловредные программы под видом хороших приложений.
Что такое android.clients.google.com
Если совсем кратко сервер android.clients.google.com Гугл использует для манипуляций с программами, играми и приложениями на площадке Google Play. Посылая запросы на этот сервер происходят основные манипуляции в Плей Маркете: поиск, информация о приложении для его установки и загрузки, данные об оплате программы(если она платная). Далее формируется ссылка и cookie для загрузки .apk файла. Что бы было понятнее вот основные ссылки для запросов:
- https://android.clients.google.com/appname/search — для поиска приложения по запросу пользователя.
- https://android.clients.google.com/appname/details — тут содержится необходимая информация о приложении необходимая для его загрузки.
- https://android.clients.google.com/appname/purchase данные о покупке и информация о токене для следующего запроса.
- https://android.clients.google.com/appname/delivery — формирование куки и ссылки для загрузки .apk
- https://android.clients.google.com/appname/log — одобрение загрузки — увеличивает так же счетчик скачиваний.
- https://android.clients.google.com/ appname /addReview — добавлениеотзывов и оценка приложения.
Именно по этим адресам злоумышленники собирают, получают и отправляют необходимую информацию. Уже были известны случаи когда в Плей Маркет попадает приложение содержащее троян, а затем устанавливается на пользовательские устройства.
Похожим образом хакеры делают своеобразную копию Play Market для манипуляций и установки опасного софта и поражения смартфонов. Особенно внимательным следует быть пользователям, которые ставили Root права на свое устройство.
Телефоны без рута защищены моделью безопасности самой операционной системы Android, но если на телефоне стоит рут — в файловой системе легко отыскать логины, пароли и токены — всё что необходимо для взлома смартфона.
android.clients.google.com блокирует доступ к Google Play
Если вы заметили что ваше устройство блокирует доступ системы Android к магазину Google Play — вполне вероятно что вы «подхватили» троян или вирусное приложение. Тут всего несколько вариантов решения проблемы:
- Для начала следует убедиться что у вас не включены сторонние VPN программы, сетевые экраны — они могут быть причиной блокировки.
- После просмотрите список последних установленных приложений. Удалите подозрительные и пробуйте запустить Play Market.
- Скачиваем антивирус Касперского или Доктор Веб и сканируем полностью всю систему. Скачать можно с официальных сайтов. Или с площадки «Приложения» если у вас телефон марки Xiaomi.
- Лучшим вариантом будет полная перепрошивка смартфона: полный вайп и сброс всех настроек до заводских. Это поможет если вирус «засел» глубоко. Перед этим кончено же сделайте бэкап контактов, фото и всей нужной информации.
- Если у вас ошибка «не удалось связаться сервером Google» — читайте следующий раздел.
Все действия вы производите на свой страх и риск. Информация представлена исключительно для ознакомления.
Не удалось связаться сервером Google. Повторите попытку позже
Если при попытке зайти в Гугл Плей появляется ошибка: «Не удалась связаться сервером Google. Повторите попытку позже» — это как раз таки манипуляции с поденой IP адреса на «левые» айпи злоумышленников.
Перед тем как читать дальше проверьте время и дату на устройстве — это первая причина почему нет доступа к Гугл Плей.
В файловой система Андроид есть файл hosts. Для его редактирования потребуются рут права и файловый редактор например ES Проводник.
- Запускаем программу ES Проводник.
- Открываем папку System, в ней ищем папку etc.
- Далее находим файл Hosts и выбираем «Редактировать» или править как текст.
- По умолчанию там содержится одна строчка «127.0.0.1 localhost» и пути айпи адреса для работы программ.
Далее ищем строчку с android.clients.google.com. Перед ней нам нужно прописать ее реальный IP адрес — это 173.194.113.129.
Можете проверить это набрав на компьютере «Пуск», «Выполнить», пишем команду cmd.
В консоли пингуем сервер Гугла командой «ping android.clients.google.com».
Таким образом у нас получится строчка 173.194.113.129 android.clients.google.com. Исправляем ее в файле Hosts, сохраняем и пробуем открывать Googple Play.
Заключение
Мы постарались простым языком объяснить для чего нужны сервера android.clients.google.com. А так же как исправить ситуацию если у вас прописаны неверные пути в файле hosts и появляется ошибка «не удалось связаться сервером Google». Напишите в комментариях была ли полезна данная статья, а так же удалось ли исправить ошибки соединения.
Евгений Загорский
IT специалист. Автор информационных статей на тему Андроид смартфонов и IOS смартфонов. Эксперт в области решения проблем с компьютерами и программами: установка, настройка, обзоры, советы по безопасности ваших устройств. В свободное время занимается дизайном и разработкой сайтов.
Источник
Set up Google Play services
To develop an app using Google Play services APIs, follow the instructions on this page to set up your project with the relevant SDKs, which are available from the Google maven repository.
To test your app when using Google Play services, you must use one of the following:
- A compatible Android device that runs Android 4.4 (API level 19) or higher and has the Google Play Store app installed.
- The Android emulator with an AVD that runs the Google APIs platform based on Android 4.4 (API level 19) or higher.
Declare dependencies for Google Play services
To develop features that depend on the Google Play services APIs in your app, complete the following steps:
Open the build.gradle file inside your app’s module directory.
For each SDK that your app requires, include the dependency for that SDK. This page includes a section that lists common Google Play services dependencies for Android apps. You might also want to add Firebase dependencies to your project.
Save the changes and sync your project.
The following snippet shows an example build.gradle file that uses the location library:
New versions of the Google Play services SDKs with bug fixes and new features are periodically released. These updates are announced in the release notes. If your app uses a dependency that has been updated, change to the latest version in your app’s dependencies to take advantage of these fixes.
Check whether Google Play services is installed
As described in the Google Play services overview, Google Play services receives automatic updates on Android 4.4 (API level 19) and higher through the Google Play Store app. However, Android devices without Google Play Store don’t have Google Play services installed. If your app runs on devices without Google Play services, you might want to check to see if Google Play services is installed on the device before you attempt to use Google APIs, or enable features in your app that require Google Play services to function.
To check for the presence of Google Play services on the device, use the isGooglePlayServicesAvailable() method.
To then begin a connection to Google Play services, or learn how to detect whether the version of Google Play services installed supports a specific API, read the guide on Accessing Google APIs.
Google Play services dependencies
The following table lists the dependencies for Google Play services that you can include in your Android app. You can filter the list by device type by selecting one of the buttons, and you can search for a specific use case or dependency name by entering text into the box that appears after the buttons.
Phones and Tablets Android TV Auto Android Go Chrome OS Wear OS
Use case and dependency name | Supported devices |
---|---|
Google Mobile Ads com.google.android.gms:play-services-ads:20.5.0 | Phone, Tablet |
Android Advertising ID (AAID) com.google.android.gms:play-services-ads-identifier:17.1.0 | Phone, Tablet, Android TV, Chrome OS |
Lightweight version of Google Mobile Ads com.google.android.gms:play-services-ads-lite:20.5.0 | Phone, Tablet |
AdSense for Search (AFS) Custom Search Ads (CSA) com.google.android.gms:play-services-afs-native:19.0.1 | Phone, Tablet, Chrome OS |
Google Analytics Services SDK for Android com.google.android.gms:play-services-analytics:17.0.1 | Deprecated. Use Google Analytics for Firebase instead. |
Android App Set ID com.google.android.gms:play-services-appset:16.0.0 | Phone, Tablet, Android TV, Chrome OS |
Google Sign-In for Android com.google.android.gms:play-services-auth:19.2.0 | Phone, Tablet, Android TV, Auto, Android Go, Chrome OS |
SMS Retriever API com.google.android.gms:play-services-auth-api-phone:17.5.1 | Phone, Tablet, Android Go |
Block Store API (includes user credential storage) com.google.android.gms:play-services-auth-blockstore:16.0.2 | Phone, Tablet, Android Go, Chrome OS |
Google Awareness API com.google.android.gms:play-services-awareness:18.0.2 | Phone, Tablet, Auto, Android Go, Chrome OS |
Utility classes com.google.android.gms:play-services-base:17.6.0 | Phone, Tablet, Android TV, Auto, Android Go, Chrome OS, Wear OS |
More utility classes com.google.android.gms:play-services-basement:17.6.0 | Phone, Tablet, Android TV, Auto, Android Go, Chrome OS, Wear OS |
Google Cast com.google.android.gms:play-services-cast:20.1.0 | Phone, Tablet, Android Go, Chrome OS |
Google Cast Application Framework (CAF) com.google.android.gms:play-services-cast-framework:20.1.0 | Phone, Tablet, Android Go, Chrome OS |
Chromium network stack (Cronet) com.google.android.gms:play-services-cronet:17.0.1 | Phone, Tablet, Android TV, Auto, Android Go, Chrome OS, Wear OS |
Fast IDentity Online (FIDO) Authentication com.google.android.gms:play-services-fido:19.0.0-beta | Phone, Tablet, Android TV, Auto, Android Go, Chrome OS, Wear OS |
Supported on devices that run Android 7.0 (API level 24) or higher.
com.google.android.gms:play-services-fitness:20.0.0
com.google.android.gms:play-services-games:21.0.0
com.google.android.gms:play-services-instantapps:17.0.1
Supported on devices that run Android 5.0 (API level 21) or higher.
com.google.android.gms:play-services-location:18.0.0
com.google.android.gms:play-services-maps:18.0.0
com.google.android.gms:play-services-mlkit-barcode-scanning:16.2.1
com.google.android.gms:play-services-mlkit-face-detection:16.2.0
com.google.android.gms:play-services-mlkit-image-labeling:16.0.5
com.google.android.gms:play-services-mlkit-image-labeling-custom:16.0.0-beta1
com.google.android.gms:play-services-mlkit-language-id:16.0.0-beta2
com.google.android.gms:play-services-mlkit-text-recognition:17.0.0
com.google.android.gms:play-services-nearby:18.0.0
com.google.android.gms:play-services-oss-licenses:17.0.0
Supported on devices that run Android 5.0 (API level 21) or higher.
com.google.android.gms:play-services-password-complexity:17.0.1
Supported on devices that run Android 4.4 (API level 19) to Android 9 (API level 28).
com.google.android.gms:play-services-pay:16.0.1
Supported on devices that run Android 5.0 (API level 20) or higher.
com.google.android.gms:play-services-recaptcha:16.0.1
com.google.android.gms:play-services-safetynet:17.0.1
com.google.android.gms:play-services-tagmanager:17.0.1
com.google.android.gms:play-services-tasks:17.2.1
com.google.android.gms:play-services-vision:20.1.3
com.google.android.gms:play-services-wallet:18.1.3
com.google.android.gms:play-services-wearable:17.1.0
Gradle plugins
Google Play services also includes several Gradle plugins, as shown in the following table. Note that the buttons that appear before the previous table don’t change the information that appears in this table.
Use case and Gradle plugin name | Supported devices |
---|---|
Show open-source licenses com.google.android.gms:oss-licenses-plugin:0.10.4 | Phone, Tablet, Chrome OS |
Strict version checking com.google.android.gms:strict-version-matcher-plugin:1.2.2 | Phone, Tablet, Android TV, Auto, Android Go, Chrome OS, Wear OS |
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Источник