رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال پوش نوتیفیکیشن با استفاده از سرویس فایربیس
#1
سلام دوستان  Heart امیداوارم حال همگی خوب باشه ... و سال نوتون مبارک ... 
ابن بار میخوام در رابطه با سرویس فایربیس گوگل براتون بگم . تا آخر پست با ما همراه باشید که براتون نحوه ی ارسال پوش نوتیفیکیشن ساده برای کاربراتون را از طریق سرویس فایربیس بگم .
البته بگم که این سرویس برای ما تحریم هست. ( به هر دلیلی حالا ) شما باید از VPN استفاده کنید. پس دقت کنید خواهشا.
و باید بگم که فایربیس کلی سرویس داره . که در اینجا فقط پوش نوتیفیکیشن رو براتون میگم. برای اطلاعات بیشتر به این لینک رجوع کنید !
خب قبل از هر کاری اول باید توی سایت فایربیس برای خودتون یک اکانت بسازید. 
ساختن اکانت در این سایت رایگان هست ولی جوری که گفتم نیاز به VPN داره ! پس به این  لینک مراجعه کنید و یک اکانت برای خودتون بسازید. 
مراحلش ساده اس ولی برای راهنمایی به این لینک ویدیو در یوتیوب مراجعه کنید.
پاسخ
تشکر شده توسط:
#2
خب گام به گام با من همراه باشید که بعد گذراندن چند گام ساده , بتونیم برای کاربرامون پوش نوتیفیکیشن رو ارسال کنیم.

گام اول : ساخت اکانت در سایت فایربیس
گام دوم : ساختن یک پروژه در سایت فایربیس به این ترتیب  که   بعد از ساخت اکانت با توجه به تصویر " GET STARTED " را انتخاب کنید .



[عکس: images?q=tbn:ANd9GcQU9Crb2Ug4SZ0VV4DbwBq...BFw7VlhFMn]


گام سوم : بعد از این مرحله تصویر زیر بر " CREATE NEW PROJECT "  را انتخاب کنید.

[عکس: images?q=tbn:ANd9GcQGUxB7G6gKoBmjFwzi-3W...Pt62PpbXZA]




گام چهارم : بعد از گام سوم برای شما پنجره ی " Add a Project "  باز خواهد شد که نامی برای پروژه ی خود و نیز کشور را انتخاب کنید.

[عکس: images?q=tbn:ANd9GcTlfyhAsMfJMhNrG00575V...lSTS7qsYcw]



گام پنجم : در پنجره ی بعدی که باز می شود شما " Add Firebase to your Android app " را انتخاب کنید.

[عکس: images?q=tbn:ANd9GcSyruZq_WoUMi31YRNuUbL...2jdu3KNxri]



گام ششم : مرحله ی مهمی هستش. در اینجا شما با 3 کادر رو به رو هستید . که باید در کادر اول به دقت پکیج نیم خود را از اندروید استودیو اینجا بنویسید.
در کادر دوم نامی را برای اپ خود انتخاب کنید.
و اما در کادر سوم که " Debug signing certificate SHA-1 " هست را طبق این لینک به دست آورید و در اینجا قرار بدید.


[عکس: images?q=tbn:ANd9GcR3khtWRDdMIvmPuAVD6H_...U-SNwq8bfQ]


گام هفتم : بعد از این مرحله , پنجره ی هدایت شما و دانلود فایل google-service.json و هم چنین طریقه ی استفاده از آن را به شما گفته...
شما این فایل رو دانلود کنید با کلیک روی اون دکمه و اون رو بردارید و مانند این لینک آن را در پروژه ی اندروید استودیو قرار بدید.


[عکس: images?q=tbn:ANd9GcTKiXsTUcf9hYZPna7n0Sw...453N97Gkjm]
پاسخ
تشکر شده توسط: mazda
#3
گام هشتم : افزودن لایبرری ها و پلاگین و ... به پروژه .
1 ) ابتدا فایل build.gradle قسمت Project:... (قسمت Module:app نیست فایل بالاتر هست) را باز کنید و این خط کد را در بلاک dependencies به آن اضافه کنید.
classpath 'com.google.gms:google-services:3.2.0'


یعنی اون قسمت فایل باید اینگونه باشد :

buildscript {
   
   repositories {
       google()
       jcenter()
   }
   dependencies {
       classpath 'com.android.tools.build:gradle:3.0.1'
       classpath 'com.google.gms:google-services:3.2.0'
       

       // NOTE: Do not place your application dependencies here; they belong
       // in the individual module build.gradle files
   }
}

2 ) خب بعد از آن به فایل buil.gradle قسمت (Module:app)
این لایبرری ها و این پلاگین را اضافه کنید: 
compile 'com.google.firebase:firebase-core:11.8.0'
compile 'com.google.firebase:firebase-messaging:11.8.0'
}

apply plugin: 'com.google.gms.google-services'

** پلاگین را باید بعد از بستن بلاک بنویسید**
 


گام نهم : ساخت کلاسی به نام MyFirebaseInstanceIdService که این کلاس از  FirebaseInstanceIdService مشتق شده و این کد ها رو در این کلاس قرار بدید: 


package firebaseConfig;

import android.annotation.SuppressLint;
import android.util.Log;

import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;

/**
* Created by sanaebadi on 3/19/18.
*/

@SuppressLint("Registered")
public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {
 private static final String TAG = "MyFirebaseInstanceIdSer";

 @Override
 public void onTokenRefresh() {

   //Get Updated Token

   String refreshedToken = FirebaseInstanceId.getInstance().getToken();
   Log.d(TAG, "onTokenRefresh: " + refreshedToken);

   //You Can Save The Token Into Third Party Server To Do AnyThing You Want


 }
}

 
گام دهم : ساخت کلاس دیگر به نام MyFirebaseMessagingService که این کلاس از FirebaseMessagingService مشتق شده و کد های این کلاس نیز به این صورت هستن :

package firebaseConfig;

import android.annotation.SuppressLint;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.support.v4.app.NotificationCompat;
import android.util.Log;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

import activity.MainActivity;
import ir.sanaebadi.retrofiteWithFirebase.R;

/**
* Created by sanaebadi on 3/19/18.
*/

@SuppressLint("Registered")
public class MyFirebaseMessagingService extends FirebaseMessagingService {
 private static final String TAG = "MyFirebaseMessagingServ";

 @Override
 public void onMessageReceived(RemoteMessage remoteMessage) {
   Log.d(TAG, "onMessageReceived: " + remoteMessage.getFrom());

   //Check If The Message Contains Data

   if (remoteMessage.getData().size() > 0) {
     Log.d(TAG, "onMessageData: " + remoteMessage.getData());
   }

   //Check If The Message Contains Notification
   if (remoteMessage.getNotification() != null) {
     Log.d(TAG, "onMessageNotification: " + remoteMessage.getNotification().getBody());

     sendNotification(remoteMessage.getNotification().getBody());
   }

 }

 /**
  * Display The Notification
  *
  * @param body
  */
 private void sendNotification(String body) {

   Intent intent = new Intent(this, MainActivity.class);
   intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

   PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
     PendingIntent.FLAG_ONE_SHOT);

   //Set Sound Of Notification

   Uri notificationSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

   NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
     .setSmallIcon(R.drawable.firebase)
     .setContentTitle("Firebase Cloud Messaging")
     .setContentText(body)
     .setSound(notificationSound)
     .setContentIntent(pendingIntent);


   NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
   assert notificationManager != null;
   notificationManager.notify(0, builder.build());
 }
}

** کدها با کامنت همراه هستند نیازی به توضیح اضافه نیست **ّ




گام یازدهم : آپدیت منیفست هست که باید بلاک Service را ایجاد کنیم و این دو کلاس را به آن معرفی کنیم . مانند کد زیر :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="ir.sanaebadi.retrofiteWithFirebase">

   <uses-permission android:name="android.permission.INTERNET"/>
   <application
       android:name="app.AppController"
       android:allowBackup="true"
       android:icon="@mipmap/ic_launcher"
       android:label="@string/app_name"
       android:roundIcon="@mipmap/ic_launcher_round"
       android:supportsRtl="true"
       android:theme="@style/AppTheme">
       <activity android:name="activity.MainActivity">
           <intent-filter>
               <action android:name="android.intent.action.MAIN"/>

               <category android:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>

       <activity
           android:name="activity.DetailsActivity"
           android:theme="@style/DetailsTheme"/>

       <service android:name="firebaseConfig.MyFirebaseMessagingService">
           <intent-filter>

               <action android:name="com.google.firebase.MESSAGING_EVENT"/>

           </intent-filter>

       </service>

       <service android:name="firebaseConfig.MyFirebaseInstanceIdService">
           <intent-filter>

               <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>

           </intent-filter>

       </service>
   </application>

</manifest>


 گام دوازدهم و آخر : برگشت به اکانت خود در فایربیس و انتخاب Notifications  از منوی آپشن های فایربیس و اکانت خود. 
و New Message را انتخاب کنید و به کاربران خود پیام بفرستید.

[عکس: firebase-send-notification-3.png]

و SEND MESSAGE را انتخاب کنید و تمام !
خب تمامی کدهاش این بود . شما می تونید این کد ها که در واقع دوتا کلاس هستن را در پروژه های خود اضافه کنید و استفاده کنید.
ولی باید پیش نیاز هاشو که براتون گفتم رو اوکی کنید.
من یه پروژه ی کامل با استفاده از رتروفیت و فایربیس ساختم و اون را در گیت هابم گذاشتم. اینم لینک پروژه ی من در گیت هاب !
امیدوارم واستون مفید باشه  Heart
و ممنون بابت همراهی شما با این پست   Smile 
موفق باشید Cool
پاسخ
تشکر شده توسط: mazda
#4
با تشکر از توضیحات شما
اگه از قسمت Tools و بعد Firebase داخل اندروید استودیو بیایم و با یک جیمیل کاکنت بشیم به فایربیس ، نیازی به انجام مراحی دوم تا ششم نیست درسته؟
(ضمن اینکه باید حتما وی پی ان روشن باشه بعد ، بجای گامهای 1 تا 6 ، مراحلی که داخل اندروید استودیو و بعد وقتی سایت فایربیس رو باز میکنه باید طی کنیم فقط)

سوال دوم:
گام نهم دهو و یازدهم باری چی هستش؟ بدون اضافه کردن این کلاسها میشه نوتیفیکیشن ارسال کرد
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 2 مهمان