كيفية ارسال notification الى الuser باستخدام FCM مع retrofit باستخدام برنامج Android Studio
في هذا المقال سوف نشرح طريقة اخرى لعمل retrofit مع FCM ويمكنك استخدام هذة المقالة او المقالة السابقة في النهايه ستحصل على نفس النتيجة ولكن يجب ان نوفر لكم جميع الافكار والحلول بحيث اذا تعرضت الى تطوير تطبيقات الاندرويد وكان الشخص الذي قام بتطويرة من قبلك كان يستخدم هذة الطريقة او السابقة تستطيع التعديل والتعامل معه بسهوله ولهذا نحاول توفير كل الافكار والشروحات لكم سواء القديمة او الجديدة .
مجال تطوير تطبيقات الاندرويد واحد من اكثر المجالات التي ينصح بتعملها او البدء في تعلم كيفية شركة تطوير تطبيقات الجوال لان اغلب العمل الحر المقدم على الانترنت يبحثون عن تطوير تطبيقات الهواتف الذكية بشكل كبير مثلا متجر يريد تحويل مجالة الى اليكتروني و ايضا مجال الويب وتصميم المواقع واحد من اكبر المجالات التي تعظى بقابلية لدى الاغلب منا ومتوفر لها دروس على الانترنت بكثرة عكس تطوير تطبيقات الهواتف الذكية ونحن نسعى الى توفير تعلم هذا المجال بشكل مجاني للجميع بهدف اثراء المحتوى العربي , وقد هذا المجال مصدر دخل ورزق بالنسبة لك وهنالك اشخاص يعتمدون وبشكل كبير على مجال شركة تطوير تطبيقات الجوال منها اندرويد و ios ونحن نحاول ان نشرح لك كيف شيئ في هذا المجال ونقدم لكم شروحات من اجل تطويرك في المجال .
الامر لا يقتصر فقط على تطوير تطبيقات الموبايل والعمل الحر فيمكنك بعد تعلم برمجة تطبيقات الاندرويد البحث عن شركة تطوير تطبيقات الجوال والعمل بداخلها وايضا يمكنك تعلم برمجة تطبيقات سطح المكتب ونحن نقدم لكم دورة جافا بسيطة جدا تمكنك من تعليم البرمجة للاطفال بالعربي اذا كنت تريد ان تعلم طفلك البرمجة او حتى تبدء فيها انت ولكن بما انك في هذة المقاله فلا اعتقد انك ما زلت مبتدء في لغة جافا , عملية تعليم البرمجة للاطفال مجانا اصبحت متوفرة وبكثرة على الانترنت عكس سابقها فيمكن لطفلك البدء في التعلم والتطور من نفسه في هذا المجال وهو ممتع وهذا المجال لا يقتصر على الكبار فقط بل يمكن تعلم البرمجة للاطفال يمكن بعد تعلمة الجافا الانتقال الى تطوير تطبيقات الاندرويد ولن يجد اكثر من المقالات حول هذا المجال في موقعنا .
شرح التعامل مع FCM باستخدام retrofit عن طريق برنامج اندرويد ستوديو
انتقل الى interface NotificationApiService وقم بلصق الاكواد التالية بدالة
سوف يطلب منك انشاء class جديد باسم RequestNotificaton قم بإنشائه .
public interface ApiInterface {
@Headers({"Authorization: key=AAAA4Ubio1Q:APA91bGWkw84b1Pw2nnnOKn8MO25U2giLRtv5TUkXidojFluZk_qKOGllS27oMZZV5goTQdwRtpdmvI1iAPRZZDNKz6c-mpU6nvHZJ-Jg9f1fQ5NdttftqUpqwAkObLEED26VFDDbXN8","Content-Type:application/json"})
@POST("fcm/send")
Call<ResponseBody> sendChatNotification(@Body RequestNotificaton requestNotificaton);
}
الان قم بالانتقال الى ApiClient وبعدها الصق الكود التالي بداخلة .
الكود الموجود بالصوره .
public static final String BASE_URL = "https://fcm.googleapis.com/";
private static Retrofit retrofit = null;
public static Retrofit getClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
الفرق الذي بين الاكود في هذا الدرس والدرس السابق اننا في الدرس السابق قمنا بعمل OkHttpClient لانها كان يتعامل بلغة json ولكن هنا يتعامل بلغة الكلاس فلن نحتاج لهذة الخطوة .
انتقل الان الى RequestNotificaton الذي قمنا بإنشاءة والصق الكود التالي بداخلة .
public class RequestNotificaton {
@SerializedName("token") // "to" changed to token
private String token;
@SerializedName("notification")
private SendNotificationModel sendNotificationModel;
public SendNotificationModel getSendNotificationModel() {
return sendNotificationModel;
}
public void setSendNotificationModel(SendNotificationModel sendNotificationModel) {
this.sendNotificationModel = sendNotificationModel;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}
قم بعملة اي import يطلب منك وانشئ كلاس جديد باسم SendNotificationModel لكي تتخطي المشكلة التي سوف تقابلك .
لو تلاحظ ان كلمة to تغيرت اصبحت token بناء على firebase documentation اذا لم تعمل جرب ان تجعلها to , بعدها ارسل token المستخدم لارسال اشعار له .
بعد انشائك لكلاس باسم SendNotificationModel قم بوضع الاكواد التالية بداخلة .
الكود السابق .
private String body,title;
public SendNotificationModel(String body, String title) {
this.body = body;
this.title = title;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
الان ارجع الى Main Code لنقوم باستدعاء كل السابق وتشغيله .
الكود الموجود بالصورة
private void sendNotificationToPatner() {
SendNotificationModel sendNotificationModel = new SendNotificationModel("check", "i miss you");
RequestNotificaton requestNotificaton = new RequestNotificaton();
requestNotificaton.setSendNotificationModel(sendNotificationModel);
//token is id , whom you want to send notification ,
requestNotificaton.setToken(token);
apiService = ApiClient.getClient().create(ApiInterface.class);
retrofit2.Call<ResponseBody> responseBodyCall = apiService.sendChatNotification(requestNotificaton);
responseBodyCall.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(retrofit2.Call<ResponseBody> call, retrofit2.Response<ResponseBody> response) {
Log.d("kkkk","done");
}
@Override
public void onFailure(retrofit2.Call<ResponseBody> call, Throwable t) {
}
});
}
الى هنا يكون انتهي شرح اليوم , احببت ان تستخدم هذة الطريقة استخدمها احببت الطريقة التي شرحناها في المقالة السابق استخدمها ونفضل استخدام السابقة لانها احدث واسهل ولكن الامر يرجع لك في البداية والنهايه .
لمشاهدة باقي الحلقات حول الاشعارات في موقعنا :
البروجكت كامل على GitHub
لمزيد من الشروحات في اندرويد ستوديو شاهد التالي :