ارسال اعلان تاپیک به کاربر(های) اپلیکیشن
تعریف اعلان تاپیک
تاپیک را میتوان یک گروه به حساب آورد که کاربران یک اپ را میتوان به آن اضافه و از آن حذف کرد. شما میتوانید کاربران خود را در تاپیک یا تاپیکهای متفاوت ثبتنام کنید و برحسب علاقهمندی کاربران یا دستهبندی خودتان به تاپیک مرتبط پوش بفرستید. مثلا اگر شما اپلیکیشن خبری دارید و کاربرانی به اخبار ورزشی علاقمند هستند و عدهای به اخبار فرهنگی، میتوانید دسته اول را در تاپیک ورزشی و دسته دوم را در تاپیک فرهنگی ثبتنام کنید و هنگام ارسال پوش، برحسب محتوای پوشتان به تاپیک مرتبط آن را ارسال کنید تا فقط کاربران علاقمند به آن موضوع آن را دریافت کنند. برای استفاده از این امکان باید کاربران خود را در تاپیک مورد نظر عضو کنید.
تفاوت این نوع اعلان با اعلان ساده این است که در این نوع فیلتر مخاطبان توسط گوگل بر اساس تاپیکهایی که با استفاده از کتابخانه پوشه ایجاد شدهاند، انجام میشود.
برای دریافت اطلاعات بیشتر از نحوه عضویت یک کاربر در یک تاپیک خاص لطفا به بخش تاپیک در مستندات کتابخانه پوشه مراجعه کنید.
کاربرد این نوع اعلان ارسال محتوا (عنوان، متن، آیکن، عکس و ...) به یک تاپیک و یا به تعدادی از تاپیکهای یک اپلیکیشن با استفاده از نام تاپیک میباشد.
نامگذاری
تمام کاربران یک اپلیکیشن در تاپیک broadcast
عضویت دارند،
لذا استفاده از این نام برای تاپیکهای خود مجاز
نمیباشد.
استفاده همزمان از دو کلید filters و topics
اگر از دو کلید filters(ارسال اعلان فیلتردار) و topics(ارسال اعلان تاپیک) همزمان در ارسال اعلان استفاده کنید، کاربران صرفا بر اساس تاپیکهای(Topics) انتخابی فیلتر خواهند شد.
آدرس (url) ارسال اعلان
برای ارسال اعلان تاپیک میتوانید از آدرس زیر که برای ارسال اعلان به پلتفرمهای آیاواس و اندروید میباشد استفاده کنید.
https://api.pushe.co/v2/messaging/notifications/
نمونه کد ارسال اعلان فیلتردار
برای مشاهده تمامی کلید های قابل استفاده در ارسال اعلان به بخش تمامی کلید های اعلان مراجعه کنید.
- 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",
"topics": ["topic1", "topic2", "topic3"],
"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: 'متن پیام'
},
topics: ['topic1', 'topic2', 'topic3']
};
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': 'متن اعلان'
},
'topics': ['topic1', 'topic2', 'topic3']
})
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' => 'متن پیام'
),
'topics' => array(
'topic1',
'topic2',
'topic3'
)
)));
$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": "متن اعلان",
},
"topics": []string{"topic1", "topic2", "topic3"}
}
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))
}