Недавно мне захотелось создать личный проект на андроиде, и основной вопрос был такой: как однозначно идентифицировать пользователя заставляя его делать как можно меньше телодвижений? Конечно же это аккаунт Google. Я пытался пробовать множество примеров в сети - однако API несколько раз обновилось за время своего существования, многие методы не работали, мои вопросы в Google+ по этому поводу либо были вообще никак не восприняты окружением, либо были вроде «Никогда такое не делал».
В этой статье я постараюсь как можно более просто для новичков (вроде меня) описать мой метод авторизации в Google на андроид, получения токена и проверке этого самого токена на сервере.

Небольшая подготовка

Для начала - у вас должны быть установлены Google Play Services в SDK. После их установки можно будет импортировать все необходимые библиотеки. Статья пишется с расчетом на Android Studio - он сам подсказывает, что необходимо импортировать.
У вас должно быть создано активити с кнопкой.
Чтобы было привычнее пользователю можете создать стандартную кнопку Google+ Sing-In
Выглядеть она будет вот так:

Просто добавьте в ваш Layout:

Добавляем действие на кнопку

Пишем в нашем активити:
View btn = (View) findViewById(R.id.sign_in_button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = AccountPicker.newChooseAccountIntent(null, null, new String{"com.google"}, false, null, null, null, null); startActivityForResult(intent, 123); } });
Собственно присвоим кнопке действие - вызов интенда выбора аккаунта. Если вы работаете в Android Studio он сам вам подскажет, какие библиотеки нужно импортировать, так что это подробно тут я расписывать не буду.
startActivityForResult(intent, 123); - задает код с которым произойдет возврат. 123 это код возврата, он может быть каким угодно. Это необходимо, когда вы делаете несколько интендов, и вам надо обработать их по разному.

Необходимые области доступа

Обьявите эти переменные в классе. Это необходимые нам области доступа. Первый написано в google: «Позволяет определить аутентифицированного пользователя. Для этого при вызове API необходимо указать me вместо идентификатора пользователя Google+. » Второе разрешение нам необходимо для получения личных данных пользователя (Имя, Фамилия, адрес G+ страницы, аватар), и последнее для получения E-mail. Я посчитал это важным, ведь это вполне неизменный идентификатор для записи в бд.
private final static String G_PLUS_SCOPE = "oauth2:https://www.googleapis.com/auth/plus.me"; private final static String USERINFO_SCOPE = "https://www.googleapis.com/auth/userinfo.profile"; private final static String EMAIL_SCOPE = "https://www.googleapis.com/auth/userinfo.email"; private final static String SCOPES = G_PLUS_SCOPE + " " + USERINFO_SCOPE + " " + EMAIL_SCOPE;

Регистрация нашего приложения.

Изначально забыл этот пункт - исправляюсь.
Нам необходимо зайти на code.google.com/apis/console создать там проект, зайти в Credentials и создать новый Client ID для OAuth выбрав пункт Installed Application -> Android. Там нам необходимо ввести название нашего пакета и SHA1 сумму нашего ключа.
С этим у меня на самом деле было много проблем решил достаточно костыльным способом.
Нашел debug.keystore в %USERPROFILE%\.android\debug.keystore поместил в папку с проектом и прописал в build.grandle:

SigningConfigs { debug { storeFile file("debug.keystore") } myConfig { storeFile file("debug.keystore") storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } }
После чего нам нужно выполнить команду:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -v -list
Сам keytool можно найти в SDK. Из вывода копируем SHA1 в нужное поле.
Как я понимаю метод временный, и для нормальной работы надо создать нормальный ключ. Но для тестирования этого достаточно.

Код получения токена

protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { if (requestCode == 123 && resultCode == RESULT_OK) { final String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); AsyncTask getToken = new AsyncTask() { @Override protected String doInBackground(Void... params) { try { String token = GoogleAuthUtil.getToken(AcrivityName.this, accountName, SCOPES); return token; } catch (UserRecoverableAuthException userAuthEx) { startActivityForResult(userAuthEx.getIntent(), 123); } catch (IOException ioEx) { Log.d(TAG, "IOException"); } catch (GoogleAuthException fatalAuthEx) { Log.d(TAG, "Fatal Authorization Exception" + fatalAuthEx.getLocalizedMessage()); } return token; } @Override protected void onPostExecute(String token) { reg(token); } }; getToken.execute(null, null, null); } }
Где 123 - ваш код, который вы указали ранее, где AcrivityName - название вашего актитивити. Грубо говоря - мы скармливаем функции получения токена необходимые разрешения и имя аккаунта. И заметьте - это все происходит в фоновом режиме, после чего полученный токен передается в написанную мною функцию reg. Она уже отправляет токен и все необходимые данные на сервер.
Так как разрабатываю недавно, с исключениями пока что беда, если есть предложение - напишите в личку или в комментарии.

Проверяем токен на сервере. (PHP)

Хочу обратить внимание, полученный нами токен имеет тип Online. И действует он лишь 10 минут. Для получения offline токена (чтобы дольше работать с ним с сервера) обратитесь к этой инструкции

Доброго всем времени суток, мои дорогие друзья. Сегодня я бы хотел рассказать еще одну фишку вконтакте, а именно как отправить сообщение самому себе в вк, воспользовавшись при этом парочкой незамысловатых способов.Я знаю многих людей (в том числе и моя жена), которые могут найти вконтакте очень интересный пост, картинку или ссылку. И что они в этом случае делают? Отсылают кому-нибудь сообщение, содержащее эту информацию, чтобы потом можно было это прочесть.

Я просто иногда недоумеваю, когда от нее приходит сoобщение с непонятным для меня содержимым. А оказывается, что это она для себя делает. Так вот для таких целей необязательно отправлять подобные письма своим друзьям. Можно послать сообщение самому себе. Ну давайте меньше слов — больше дела!

Давайте начнем с чего попроще

После этого перейдите сообщение и вы увидите диалог самого с собой. Здорово, да?

Если вам вдруг что-либо не понятно, то специально для вас я записал подробное обучающее видео с дополнительным способом.

Второй способ

Есть еще один способ. Тоже быстрый и несложный. А может он вам понравится еще больше. В общем суть в том, что в адресной строке вы должны нaписать следующее - https://vk.com/im?sel=ВАШ_ID. Только вместо ВАШ_ID пишите номер своего ID. Например если я захочу послать себе сообщение вконтакте, то я напишу так - https://vk.com/im?sel=1204057 , так как это мой порядковый номер, который мне выдали при регистрации.

Единственное, сейчас многие сами заменяют свой числовой ID на буквенный, вот у меня например damle, а у вас может быть что-то другое. Но если я напишу https://vk.com/im?sel=damle, то диалога самого с собой не получится. Нужен именно ваш числовой ID.

Есть конечно одно НО. Если у вас в адресе стоит не ID, а ваш псевдоним то придется сделать одну маленькую манипуляцию. И о том, как узнать id вконтакте если вместо него стоит ник, я сейчас быстро расскажу. Если вы не знаете или не помните, как посмотреть свой номер, то просто зайдите в настройки — «Общие» , а затем спуститесь чуть ниже. Там будет красоваться пункт «Адрес страницы» . Но не видно самого числа.

Чтобы конкретно увидеть номер, нажмите на кнопку изменить и тогда вам всё покажется. Останется только взять это число и подставить его в нашу адресную строку.

Ну вот теперь вы знаете, как отправить сообщение самому себе в вк и при этом никого не тревожить. Согласитесь, очень интересная фишка?

Ну что же. На этом я свою статью заканчиваю. Надеюсь, что она вам пришлась по вкусу. Буду ждать ваших комментариев и отзывов. И кстати, не забываем подписываться на обновления моего блога, чтобы всегда быть в курсе всего самого интересного. И конечно же я буду рад снова вас видеть на страницах моего блога. Удачи вам и пока-пока!

С уважением, Дмитрий Костин

Отыскать сегодня человека, который бы не имел аккаунт в социальных сетях, сегодня крайне сложно. Компьютерные технологии не стоят на месте, и каждый хочет быть, так сказать, быть в тренде, идти в ногу со временем. Соцсеть ВКонтакте считается одним из наиболее посещаемых пользователями ресурсом, ведь она позволяет поддерживать связь между людьми, где бы те не находились. Помимо этого, данный сайт является еще и отличным плацдармом для заведения новых знакомств, общения с единомышленниками и т.д.

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

Зачем нужна эта функция

Разумеется, данная функция нужна никак не ради забавы. Нет, ну возможно, что дети она и покажется веселой, однако взрослые могут найти ей лучшее применение. Дело в том, что время от времени каждый из нас испытывает потребность сохранить какую-то информацию в голове или, например, прочесть какую-то статью, заметку и т.д. позже. Обычно в ежедневной суматохе все это быстро забывается, и информация теряется. И вот в таких ситуациях вы можете прибегнуть к отправке сообщений самому себе! Такая возможность является гарантией, что вы ничего не забудете, и вернетесь к просмотру нужной информации в любое, удобное для вас время. Также если вы случайно удалили какое-то сообщение, то есть возможность .

Как отправить сообщение себе

На сегодняшний день существует два способа отправить личное сообщение самому себе, предлагаю вашему вниманию оба.

Как видите, отправить сообщение самому себе в ВК очень просто, и получится у каждого!

Видео в помощь

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

Основные нюансы

Существует несколько приемов создания диалога с самим собой. Сделав его единожды одним из способов, можно в любое время оставлять там для себя заметки, сохранять интересные записи, фото, контакты и пр. Но даже для беседы с самим собой есть ограничение: количество сообщений, которые можно отправить самому себе, не должно превышать 20 в сутки.

Этот лимит связан с защитой от пользователей, которые пытаются накрутить подписчиков при помощи рассылки спама. Друзьям можно отсылать сообщений сколько угодно, но добавить самого себя в список друзей технически невозможно. Да, это звучит странно. Но создание беседы с самим собой – это баг, а не задуманная функция. Поэтому нужно отдать разработчикам должное хотя бы за то, что они не торопятся его устранять.

Как в ВК написать самому себе: способ 1

Этот способ подходит для людей, которые пользуются полной версией сайта ВКонтакте. Поэтому первое, что необходимо сделать, – открыть социальную сеть в любом браузере со своего ПК. Далее нужно пошагово следовать нижеприведенной инструкции.

Последовательность действий:

  1. Зайти в аккаунт под своим логином и паролем.

  1. Скопировать ссылку http://vk.com/im?sel= в строку браузера и дописать в нее номер своей страницы.

  1. Чтобы перейти по ссылке, следует нажать кнопку «Enter» на клавиатуре. После этого откроется диалог с самим собой.

  1. Для того чтобы он сохранился в беседах, необходимо написать и отправить любое сообщение.

Сложность этого способа в том, что немногие помнят ID-номер от своего аккаунта. Но это поправимо.

Как узнать номер своей страницы

После того, как разработчики позволили пользователям самим выбирать адрес своего аккаунта, ID-номер исчез из адресной строки браузера. Но он до сих пор используется в некоторых ссылках и исходном коде веб-страниц.

Как узнать свой ID-номер:

  1. Зайти в свой профиль в ВК и открыть меню пользователя.

  1. Из открывшегося списка нужно выбрать «Настройки».

  1. Экран с настройками необходимо прокрутить до блока «Адрес страницы», после чего нажать кнопку «Изменить».

  1. Здесь откроется ID-номер страницы.

В отличие от адреса профиля, ID-номер нельзя изменить. Он присваивается сразу после регистрации в соцсети и остается таким на протяжении всего времени существовании страницы.

Как создать диалог с самим собой: способ 2

Если первый метод показался сложным, есть второй, более легкий, путь решения проблемы. Чтобы им воспользоваться, не нужно искать никакие номера страниц, копировать ссылки и пр. Все, что необходимо сделать, это:

  1. В своем аккаунте открыть список друзей.

  1. Кликнуть по любому аккаунту и зайти на страницу друга.

  1. Там открываем список друзей, для чего нажимаем на соответствующую кнопку в левой части экрана.

  1. Среди остальных пользователей необходимо найти свой аккаунт и под ним нажать кнопку «Написать сообщение».

  1. В появившемся окне следует кликнуть по кнопке «Перейти к диалогу».

  1. Здесь так же нужно написать и отправить любое письмо, чтобы переписка сохранилась в беседах.

На этом создание личной переписки окончено. Теперь можно в любое время зайти во вкладку «Сообщения» и сохранить важную информацию в беседе с самим собой.

Создаем диалог в мобильном приложении ВК

Многие пользователи уже отказались от использования полной версии сайта, променяв ее на более удобное мобильное приложение. Оно имеет одинаковые функции и при его создании разработчики решили сохранить полезный баг, оставив возможность прислать самому себе СМС. Для этого нужно.

magician_roman в Понятие "скрытая копия", учимся не делать глупости

К удивлению, многие люди, когда им требует отправить письмо сразу нескольким людям, просто перечисляют адреса в поле "Кому", это нормально, когда это письмо адресовано вашим коллегам или друзьям, но вот при рассылке писем группе клиентов, - вы таким образом показываете всем адреса и других получателей, фактически раскрывая свою адресную базу.

Любому из клиентов достаточно переслать это письмо вашему конкуренту и ваши контакты тут же утекут.

Странно, но многие далеко не глупые люди, с удивлением узнают, что если вам нужно отправить письмо множеству адресатов, чтобы они не знали друг о друге то для этого существует поле "Скрытая копия".

Например, для mail.ru это будет выглядеть так:

И так еще раз коротко: указали адреса в "кому" - всем видно кому вы отправили письма, указали в "скрытая копия" - каждый думает что письмо только ему.

И каждый получатель получит письмо где в поле "кому" будет только его адрес . Для других программ, если вы не можете найти где указать скрытую копию, то попросите кого-нибудь вам показать. Еще маленький момент, обязательно нужно указать один адрес в поле "кому", большинство программ или почтовых серверов вам не дадут отправить письмо без этого параметра.

И так, когда речь идет о рассылке предложения, новостей группе ваших клиентов - здесь практика использования скрытой копии однозначна, вы должны скрывать вашу адресную базу. Интересный момент с рассылкой письма вашим коллегам, здесь рекомендуют поступать по ситуации, например рассылка письма с просьбой прислать предложения (например по совершенствованию обслуживания клиентов) и если каждый коллега увидит, что такое же письмо получили и другие люди, то скорей всего отвечать не будет - понадеется на других, значит нужно использовать скрытую копию. Если же это поручение выполнить, то например указание в "кому" начальника вашего коллеги - просто сотворит чудеса, и ваше поручение будет выполнено.

Отдельный вопрос с поставщиками. С одной стороны указание всех получателей в копии, должно показать поставщику, что у вас есть выбор и он должен вам предложить хорошие цены. С другой стороны, менеджер получивший ваше письмо, видя что прислано не только ему, скорей всего отнесется к вашему запросу "прохладно". Лично по моему мнению, считаю что и в случае с поставщиками нужно использовать скрытую копию, хотя бы для защиты коммерческой тайны, но больше скорей для хороших отношений с менеджером поставщика.

Можете почитать недавний случай ошибки специалиста, когда все получатели увидели и других адресатов: Всем чмоки в этом чате , там правда народ солидный был - директора, но все же спама многие получили в ответ.

Ну и как всегда обсуждение в комментариях приветствуется.