با استفاده از افزونه وان سیگنال (OneSignal.com) می توانید برای کاربران بازی خود پوش نوتیفیکیشن (اعلان) ارسال کنید.

راهنمای استفاده:

ابتدا با برنامه گذر از تحریم به این لینک مراجعه کنید:

https://developers.google.com/mobile/add?platform=android&cntapi=gcm

در صفحه باز شده در قسمت App name نام و در قسمت Android package name پکیج نیم بازی خود را بنویسید. کشور خود را انتخاب کنید سپس گزینه Continue to choose and configure services را انتخاب کنید.

در ادامه گزینه Enable google cloud messaging را انتخاب کنید.

کدهای Server API Key و Sender ID را در جایی ذخیره کنید.

وارد سایت وان سیگنال شوید. (www.onesignal.com) وارد حساب کاربری خود شوید. سپس گزینه Add a new app را انتخاب کنید.

در مرحله بعد نام بازی خود را وارد کنید و گزینه Create را انتخاب کنید:

سپس گزینه Settings یا App Settings را انتخاب کنید:

سپس گزینه Configure از قسمت Google Android را انتخاب کنید:

سپس در قسمت Google Server API Key کد Server API Key که از پنل گوگل در مراحل قبل دریافت کردید را وارد کنید و در قسمت Google project Number کد Sender ID را قرار دهید سپس گزینه Save را انتخاب کنید:

افزونه وان سیگنال را از جعبه دانلود پایین مطلب دانلود کنید. وارد گیم میکر شوید. بر روی پوشه Extensions کلیک راست کنید و گزینه Import Extension را انتخاب کنید سپس فایل افزونه ای که دانلود کردید را انتخاب کنید.

یک آبجکت به نام obj_onesignal بسازید و در ایونت Create آن کد زیر را قرار دهید:


        onesignal_init("OneSignal App ID",OneSignal_InApp);
    

در قسمت OneSignal App ID کدی که از پنل وان سیگنال دریافت کرده اید را قرار دهید. برای دریافت این کد به پنل وان سیگنال خود مراجعه کنید سپس گزینه App Settings را انتخاب کنید. وارد تب Keys & IDs شوید و کد OneSignal App ID را کپی کنید:

امکانات دیگر:

فعال/غیرفعال کردن ویبره
برای فعال یا غیرفعال کردن ویبره هنگام دریافت نوتیفیکیشن از کد زیر استفاده کنید:


        onesignal_vibrate(true);
    

فعال/غیرفعال کردن صدا
برای فعال یا غیرفعال کردن صدا هنگام دریافت نوتیفیکیشن از کد زیر استفاده کنید:


        onesignal_sound(true);
    

فعال/غیرفعال کردن دریافت نوتیفیکیشن
برای فعال یا غیرفعال کردن دریافت پوش نوتیفیکیشن از کد زیر استفاده کنید:


        onesignal_set_subscribtion(true);
    

ارسال تگ
تگ ها برای دسته بندی کاربران به کار می روند. بعد از تگ کردن کاربران، هنگام ارسال نوتیفیکیشن می توانید فقط برای یک دسته از کاربران اعلان بفرستید. برای تگ کردن از کد زیر استفاده کنید:


        onesignal_send_tag("Key","Value");
    

ارسال تگ گروهی
برای تگ کردن کاربر در چند دسته از کد زیر استفاده کنید. (Keyها و Valueها را با , از هم جدا کنید)


        onesignal_send_tags("Key1,Key2,Key3","Value1,Value2,Value3");
    

حذف تگ
برای حذف تگ از کد زیر استفاده کنید:


        onesignal_delete_tag("Key");
    

حذف تگ گروهی
برای حذف چند تگ به صورت همزمان از کد زیر استفاده کنید: (Keyها را با , از هم جدا کنید)


        onesignal_delete_tags("Key1,Key2,Key3");
    

ثبت ایمیل کاربر
اگر ایمیل کاربر را در اختیار دارید می توانید با کد زیر آن را در پنل ثبت کنید:


        onesignal_sync_email("Example@Gmail.com");
    

دریافت اطلاعات همراه نوتیفیکیشن
برای دریافت اطلاعاتی که همراه پوش نوتیفیکیشن ارسال می کنید کدهای زیر را در ایونت Social آبجکت obj_onesignal قرار دهید:


        var type = string(ds_map_find_value(async_load, "type"));
if (type == "OneSignal") {
	var title = string(ds_map_find_value(async_load, "title"));
	var body = string(ds_map_find_value(async_load, "body"));
	var notificationID = string(ds_map_find_value(async_load, "notificationID"));
	var data = string(ds_map_find_value(async_load, "data"));
	var actionID = string(ds_map_find_value(async_load, "actionID"));
}
    

دریافت شناسه کاربر
برای دریافت شناسه کاربر در وان سیگنال و گوگل از کدهای زیر در ایونت Social آبجکت obj_onesignal استفاده کنید:


        if (type == "OneSignalUser") {
	var registrationId = string(ds_map_find_value(async_load, "registrationId"));
	var userId = string(ds_map_find_value(async_load, "userId"));
}
    

ارسال نوتیفیشکن از بازی
برای ارسال نوتیفیکیشن از داخل بازی از کد زیر استفاده کنید:


        onesignal_post_notification("{
	"app_id": "OneSignal App ID",
	"include_player_ids": ["userID"],
	"data": {"key": "value"},
	"headings": {"en": "Message Title"},
	"contents": {"en": "Message Content"}
}");
    

کدهایی که می توانید همراه نوتیفیکیشن ارسال کنید در این صفحه وجود دارمد.
برای دریافت نتیجه ارسال نوتیفیکیشن کد زیر را در ایونت Social آبجکت obj_onesignal قرار دهید:


        if (type == "OneSignalPostNotification") {
	var result = string(ds_map_find_value(async_load, "result"));
}
    

اگر مقدار result برابر onSuccess بود اعلان با موفقیت ارسال شده است و اگر برابر onFailure بود یعنی مقداری که برای ارسال نوتیفیکیشن وارد کرده اید اشتباه است و اعلان ارسال نشده است.