Отправка push-уведомлений с Parse и Cloud Code на Android
15 мин
отправка push уведомлений parse с использованием cloud code введение в этом разделе объясняется, как вы можете отправлять push уведомления с использованием cloud code через back4app вот как это будет выглядеть в любое время вы можете получить доступ к полному проекту android, созданному с помощью этого руководства, в нашем репозитории на github https //github com/back4app/android cloud code push предварительные условия для завершения этого учебника нам нужно android studio https //developer android com/studio/index html приложение, созданное на back4app примечание следуйте учебнику по созданию нового parse app https //www back4app com/docs/get started/new parse app чтобы узнать, как создать parse app на back4app android приложение, подключенное к back4app примечание следуйте учебнику по установке parse sdk https //www back4app com/docs/android/parse android sdk чтобы создать проект android studio, подключенный к back4app следуйте шагам 1 до 5 из учебника по push уведомлениям back4app через панель управления https //www back4app com/docs/android/push notifications/parse server push notifications внимательно, чтобы настроить push уведомления для вашего приложения устройство (или виртуальное устройство https //developer android com/studio/run/managing avds html ) с api уровнем 27 или новее 1 настройка android для получения push каждое приложение parse, установленное на устройстве, зарегистрированном для получения push уведомлений, имеет связанный \<font color="#2166ae">объект установки\</font> объект \<font color="#2166ae">объект установки\</font> — это место, где вы храните все данные, необходимые для нацеливания push уведомлений например, в вашем приложении вы можете хранить, какие команды интересуют одного из ваших пользователей, чтобы отправлять обновления о их производительности сохранение \<font color="#2166ae">объект установки\</font> объекта также необходимо для отслеживания событий открытия приложения, связанных с push самый простой способ начать отправку уведомлений — использовать каналы это позволяет вам использовать модель издатель подписчик для отправки push уведомлений устройства начинают с подписки на один или несколько каналов, и уведомления могут быть позже отправлены этим подписчикам каналы, на которые подписан данный \<font color="#2166ae">объект установки\</font> хранятся в поле \<font color="#2166ae">каналы\</font> объекта \<font color="#2166ae">объект установки\</font> чтобы начать работать с push уведомлениями, необходимо выполнить следующие шаги если вы скачали наш шаблон проекта https //github com/back4app/android cloud code push , не забудьте изменить свои учетные данные в файле \<font color="#2166ae">app/src/main/res/values/string xml\</font> и \<font color="#2166ae">gcmsenderid\</font> , который вы получили в firebase в файле \<font color="#2166ae">androidmanifest xml\</font> импортируйте следующие зависимости 1 // зависимости java 2 import java util arraylist ; 3 // зависимости parse 4 import com parse parse ; 5 import com parse parseinstallation ; 2\ инициализируйте parse с помощью \<font color="#2166ae">parse initialize(this)\</font> 3\ создайте новый массив каналов и добавьте каналы, на которые вы хотите подписаться в этом примере создан канал \<font color="#2166ae">новости\</font> 4\ добавьте в вашу установку ваш \<font color="#2166ae">gcmsenderid\</font> , полученный из консоль firebase https //console firebase google com/?pli=1 , с помощью команды \<font color="#2166ae">installation put("gcmsenderid", "your firebase gcm sender id here")\</font> чтобы узнать, как получить этот ключ, посмотрите на шаг 1 из учебник по push уведомлениям через панель управления https //www back4app com/docs/android/push notifications/parse server push notifications 5\ добавьте объект \<font color="#2166ae">channels\</font> в \<font color="#2166ae">installation\</font> с помощью команды \<font color="#2166ae">installation put("channels", channels)\</font> 6\ сохраните установку в вашей базе данных с помощью \<font color="#2166ae">installation saveinbackground()\</font> следующий код выполняет эти шаги 1 parse initialize(this); 2 arraylist\<string> channels = new arraylist<>(); 3 channels add("news"); 4 parseinstallation installation = parseinstallation getcurrentinstallation(); 5 // don't forget to change the line below with the sender id you obtained at firebase 6 installation put("gcmsenderid", "your firebase gcm sender id here"); 7 installation put("channels", channels); 8 installation saveinbackground(); 2 создайте свой cloud code чтобы узнать больше о том, как начать работу с cloud code посмотрите на учебник по cloud code для android https //www back4app com/docs/get started/cloud functions создайте \<font color="#2166ae"> js\</font> файл, чтобы поместить в него ваш cloud code в этом примере создается \<font color="#2166ae">main js\</font> файл определите cloud функцию, используя \<font color="#2166ae">parse cloud define\</font> , чтобы вызвать push уведомление в этом примере эта функция называется \<font color="#2166ae">parse push send\</font> необходимо использовать master key в этой операции следующий код выполняет эти шаги parse server 3 x //main js 1 parse cloud define("pushsample", (request) => { 2 3 return parse push send({ 5 channels \["news"], 6 data { 7 title "hello from the cloud code", 8 alert "back4app rocks!", 9 } 10 }, { usemasterkey true }); 11 }); parse server 2 x //main js 1 parse cloud define("pushsample", function (request, response) { 2 parse push send({ 3 channels \["news"], 4 data { 5 title "hello from the cloud code", 6 alert "back4app rocks!", 7 } 8 }, { 9 success function () { 10 // push was successful 11 response success("push sent"); 12 console log("success push sent"); 13 }, 14 error function (error) { 15 // push was unsucessful 16 response error("error with push " + error); 17 console log("error " + error); 18 }, 19 usemasterkey true 20 }); 21 }); 3 загрузить в cloud code перейдите в ваше приложение на сайте back4app https //www back4app com/ и нажмите на \<font color="#2166ae">панель управления\</font> найдите \<font color="#2166ae">cloud code\</font> и нажмите на \<font color="#2166ae">функции и веб хостинг\</font> это выглядит так 3\ загрузите или создайте новый файл (вы также можете редактировать текущий \<font color="#2166ae">main js\</font> файл прямо в браузере) затем нажмите на \<font color="#2166ae">развернуть\</font> как показано здесь 4 вызов cloud code из android приложения импортируйте следующие зависимости 1 // зависимости java 2 import java util hashmap ; // это включает объект hasmap, который 4 облачная функция должна вызвать 3 // зависимости parse 4 import com parse functioncallback ; 5 import com parse parsecloud ; 6 import com parse parseexception ; 2\ вызовите \<font color="#2166ae">parsecloud callfunctioninbackground\</font> на облачной функции \<font color="#2166ae">pushsample\</font> 1 final hashmap\<string, string> params = new hashmap<>(); 2 // calling the cloud code function 3 parsecloud callfunctioninbackground("pushsample", params, new functioncallback\<object>() { 4 @override 5 public void done(object response, parseexception exc) { 6 if(exc == null) { 7 // the function was executed, but it's interesting to check its response 8 alertdisplayer("successful push","check on your phone the notifications to confirm!"); 9 } 10 else { 11 // something went wrong 12 toast maketext(mainactivity this, exc getmessage(), toast length long) show(); 13 } 14 } 15 }); метод \<font color="#2166ae">alertdisplayer\</font> , использованный в приведенном выше примере, следующий 1 private void alertdisplayer(string title ,string message ){ 2 alertdialog builder builder = newalertdialog builder (mainactivity this ) 3 settitle ( title ) 4 setmessage ( message ) 5 setpositivebutton ( "ok" , new dialoginterface onclicklistener () { 6 @override 7 public void onclick(dialoginterface dialog , int which ) { 8 dialog cancel (); 9 } 10 }); 11 alertdialog ok = builder create (); 12 ok show (); 13 } 3\ проверьте, отправляются ли push уведомления, вызвав функцию выше, пока устройство открыто 5 вызов облачного кода из rest api rest api предоставляет быстрый и простой способ проверить, работает ли ваша облачная функция просто используйте код ниже в вашем терминале или командной строке нажмите, чтобы узнать больше о том, как начать работу с командной строкой в linux https //www digitalocean com/community/tutorials/an introduction to the linux terminal , macos https //blog teamtreehouse com/introduction to the mac os x command line или windows https //www bleepingcomputer com/tutorials/windows command prompt introduction/ curl x post h "x parse application id your app id here" \\ h "x parse rest api key your rest api key here" \\ h "content type application/json" \\ d '{ // вставьте параметры функции здесь в формате json }' \\ https //parseapi back4app com/functions/pushsample чтобы протестировать push уведомления, просто используйте rest код, пока устройство открыто готово! на этом этапе вы можете отправлять push уведомления, используя cloud code через back4app!