ارسال اعلان فیلتردار به کاربر(های) اپلیکیشن
تعریف اعلان فیلتردار
کاربرد این نوع ارسال اعلان با محتوا (عنوان، متن و ...) به یک و یا به تعدادی از کاربران از کل کاربران وبسایتتان میباشد.
در این نوع اعلان میتوان با استفاده از شناسه یکتا device_id
کاربران دریافت کننده اعلان را فیلتر کرد.
تعریف شناسههای یکتا در ارسال اعلان
شناسه های یکتا مقادیری هستند که میتوانید از طریق کتابخانههای پوشه دریافت کنید. با استفاده از این شناسهها میتوانید به کاربر(های) اپلیکیشن اعلان ارسال کنید.
شناسه یکتا device_id:
- این شناسه مقداری است یکتا که کتابخانه وبپوش در اختیار شما میگذارد، با استفاده از این مقدار میتوانید کاربران دریافت کننده اعلان را فیلتر کنید.
- راهنما دریافت شناسه یکتا device_id
شناسه یکتا phone_number:
- شماره تلفن کاربر
- مقدار: لیستی از رشتهها
- مثال:
["09*********", "09*********"]
- راهنمای تخصیص این شناسه در کتابخانه پوشه
شناسه یکتا email:
- آدرس ایمیل کاربر
- مقدار: لیستی از رشتهها
- مثال:
["[email protected]", "[email protected]"]
- راهنمای تخصیص این شناسه در کتابخانه پوشه
شناسه یکتا custom_id:
- هر عبارت دلخواهی که میخواهید به عنوان شناسه استفاده کنید
- مقدار: لیستی از رشتهها
- مثال:
["custom_id1", "custom_id2"]
- راهنمای تخصیص این شناسه در کتابخانه پوشه
آدرس (url) ارسال اعلان
برای ارسال اعلان فیلتردار وب میتوانید از آدرس زیر استفاده کنید.
https://api.pushe.co/v2/messaging/notifications/
کلیدهای ارسال اعلان فیلتردار
برای ارسال یک اعلان فیلتردار حداقل کلیدهایی که می توان استفاده کرد تا یک اعلان به صورت صحیح ساخته و ارسال شود به شکل زیر میباشد.
- app_ids: شناسه اپلیکیشن که از نوع رشته string میباشد.
این فیلد اجباری است - filters: یک دیکشنری میباشد که مقدار فیلتر device_id را نگه میدارد
این فیلد اجباری است- device_id لیستی از رشته string (لیستی از شناسه های device_id)
- phone_number لیستی از رشته string (لیستی از شناسه های device_id)
- email لیستی از رشته string (لیستی از شناسه های device_id)
- custom_id لیستی از رشته string (لیستی از شناسه های device_id)
- data: یک دیکشنری که مقادیر (محتوای) اعلان را نگه میدارد.
این فیلد اجباری است- title: این فیلد بیانگر عنوان اعلان میباشد و از نوع رشته string میباشد.
این فیلد اجباری است - content: این فیلد بیانگر متن اعلان میباشد و از نوع رشته string میباشد.
این فیلد اجباری است
- title: این فیلد بیانگر عنوان اعلان میباشد و از نوع رشته string میباشد.
نکته مهم
در کلید filters
استفاده از حداقل یکی از شناسههای یکتا ضروری است.
نکته مهم
پوشه استفاده از کلید device_id
را برای ارسال اعلانهای فیلتردار توصیه میکند.
نمونه کد ارسال اعلان فیلتردار
برای مشاهده تمامی کلید های قابل استفاده در ارسال اعلان به بخش تمامی کلید های اعلان مراجعه کنید.
- CURL
- NODE.JS
- PYTHON
- PHP
- GO
- در این نمونه کد از cURL استفاده شده است که میتوانیدتوسط
sudo apt install curl
آن را نصب کنید.
curl -X POST https://api.pushe.co/v2/messaging/notifications/ \
-H 'authorization: Token YOUR_TOKEN' \
-H 'content-type: application/json' \
-d '{
"app_ids": "YOUR_APP_ID",
"filters": {
"device_id": ["device_id_1","device_id_3", "device_id_2", "device_id_4"]
},
"data": {"title": "عنوان پیام", "content": "محتوای پیام"}
}'
- برای اجرای این کد باید ابتدا پکیج axios را نصب کنید
npm install axios
const axios = require('axios');
const YOUR_TOKEN = 'put your token here ...';
const YOUR_APP_ID = 'put your app id here ...';
const url = `https://api.pushe.co/v2/messaging/notifications/`;
const options = {
headers: {
'Authorization': `Token ${YOUR_TOKEN}`,
'Content-Type': 'application/json'
}
};
const data = {
app_ids: YOUR_APP_ID,
data: {
title: 'عنوان پیام',
content: 'متن پیام'
},
filters: {
device_id: [
'device_id_1',
'device_id_2',
'device_id_3',
'device_id_4'
],
}
};
axios.post(url, data, options)
.then(resp => console.log(resp))
.catch(err => console.error(err));
- برای اجرا نیاز به پایتون ورژن ۳.۶ و به بالا میباشد
- برای اجرای این کد باید ابتدا پکیج requests را نصب کنید.
pip install requests
import requests
import json
YOUR_TOKEN = 'put your token here ...'
YOUR_APP_ID = 'put your app id here ...'
url = f'https://api.pushe.co/v2/messaging/notifications/'
headers = {
'Authorization': f'Token {YOUR_TOKEN}',
'Content-Type': 'application/json'
}
payload = json.dumps({
'app_ids': YOUR_APP_ID,
'data': {
'title': 'عنوان اعلان',
'content': 'متن اعلان'
},
'filters': {
'device_id': [
'device_id_1',
'device_id_2',
'device_id_3',
'device_id_4'
]
}
})
r = requests.post(url, data=payload, headers=headers)
print(r.status_code)
$YOUR_TOKEN = 'put your token here ...';
$YOUR_APP_ID = 'put your app id here ...';
$ch = curl_init('https://api.pushe.co/v2/messaging/notifications/');
curl_setopt_array($ch, array(
CURLOPT_POST => 1,
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Authorization: Token " . $YOUR_TOKEN,
),
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array(
'app_ids' => $YOUR_APP_ID,
'data' => array(
'title' => 'عنوان پیام',
'content' => 'متن پیام'
),
'filters' => array(
'device_id' => array(
'device_id_1',
'device_id_2',
'device_id_3',
'device_id_4'
)
)
)));
$result = curl_exec($ch);
curl_close($ch);
echo $result;
package main
import (
"fmt"
"bytes"
"io/ioutil"
"encoding/json"
"net/http"
)
const YOUR_TOKEN = "put your token here ..."
const YOUR_APP_ID = "put your app id here ..."
func main() {
url := "https://api.pushe.co/v2/messaging/notifications/"
payload := map[string]interface{}{
"app_ids" : YOUR_APP_ID,
"data": map[string]string{
"title": "عنوان اعلان",
"content": "متن اعلان",
},
"filters": map[string][]string{
"device_id": []string{
"device_id_1",
"device_id_2",
"device_id_3",
"device_id_4"
}
}
}
jsonValue, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonValue))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Token " + YOUR_TOKEN)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("response Status:", resp.Status)
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("response Body:", string(body))
}