ارسال اعلان تراکنشی
تعریف اعلان تراکنشی
این نوع ارسال محتوا (عنوان، متن، آیکون، عکس و ...) به یک و یا به چند کاربر میباشد.
تفاوت این نوع اعلان با نوع ساده و فیلتردار این است که در این نوع اعلان ارسال شده در پنل ثبت نمیشود و آمار آن هم قابل مشاهده نخواهد بود و ویژگی این نوع اعلان سرعت بالای ارسال آن نسبت به انواع دیگر اعلان میباشد.
در ارسال این نوع اعلان باید به موارد زیر دقت کنید
- گیرندگان اعلان در هر درخواست باید توسط یکی از چهار امکان دستهبندی
device_id
,android_id
,custom_id
و یاad_id
مشخص شوند - حداکثر تعداد دریافت کنندهگان اعلان در یک درخواست ۵۰۰ کاربر میباشد
آدرس (url) ارسال اعلان تراکنشی
برای ارسال اعلان تراکنشی برای هر دو پلتفرم اندروید و آیاواس می توانید از آدرس زیر استفاده کنید.
https://api.pushe.co/v2/messaging/rapid/
کلیدهای ارسال اعلان تراکنشی
برای ارسال یک اعلان تراکنشی حداقل کلیدهایی که می توان استفاده کرد تا یک اعلان به صورت صحیح ساخته و ارسال شود به شکل زیر میباشد.
app_id: شناسه اپلیکیشن که از نوع رشته string میباشد.
این فیلد اجباری استandroid_id: لیستی از شناسه(های) یکتا کاربر میباشد که توسط اندروید و آیاواس به کاربر داده میشود و مقدار آن از طریق کتابخانه پوشه قابل دریافت میباشد.
برای مشاده روش دریافت به راهنما پلتفرم مورد استفادهتان بروید
- device_id:
لیستی از شناسه(های) یکتا کاربر میباشد که توسط اندروید و آیاواس به کاربر داده میشود و
مقدار آن با مقدار کلید
device_id
برابر است.
برای مشاده روش دریافت به راهنما پلتفرم مورد استفادهتان بروید
ad_id: لیستی از شناسه(های) یکتا کاربر میباشد که توسط اندروید و آیاواس به کاربر داده میشود و مقدار آن از طریق کتابخانه پوشه قابل دریافت میباشد.
برای مشاده روش دریافت به راهنما پلتفرم مورد استفادهتان برویدcustom_id: لیستی از شناسه(های) کاربر میباشد که توسط توسعهدهنده(شما) در کتابخانه پوشه به کاربران اندروید و آیاواس نسبت داده میشود.
برای مشاده روش دریافت به راهنما پلتفرم مورد استفادهتان بروید
دقت کنید
برای دستهبندی کاربران در اعلان تراکنشی تنها استفاده از یکی از چهار امکان دسته بندی یعنی
custom_id
, ad_id
,device_id
یا android_id
اجباری میباشد و در صورت استفاده همزمان بیش از یک مورد به شما پیام خطا بازگردانده میشود.
data: یک دیکشنری که مقادیر (محتوای) اعلان را نگه میدارد.
- title: این فیلد بیانگر عنوان اعلان میباشد و از نوع رشته string میباشد.
این فیلد اجباری است - content: این فیلد بیانگر متن اعلان میباشد و از نوع رشته string میباشد.
این فیلد اجباری است
- title: این فیلد بیانگر عنوان اعلان میباشد و از نوع رشته string میباشد.
custom_content: یک دیکشنری که در داخل آن میتوانید از کلید و مقدار برای ارسال محتوای دلخواه به اپلیکیشن استفاده کنید.
دقت کنید
برای ارسال محتوا به کاربران در اعلان تراکنشی تنها استفاده از یکی از دو کلید
data
یا custom_content
اجباری میباشد و در صورت استفاده همزمان بیش از یک مورد به شما پیام خطا بازگردانده میشود.
نکته
برای مشاهده تمامی کلیدهای قابل استفاده در ارسال اعلان به تمامی کلید های اعلان مراجعه کنید.
نمونه کد ارسال اعلان تراکنشی
در نمونه کد های زیر حداقل کد مورد نیاز برای ارسال یک اعلان ساده در زبان های مختلف با عنوان و متن نمایش داده شده. برای مشاهده تمامی کلید های قابل استفاده به بخش تمامی کلید های اعلان مراجعه کنید.
- CURL
- NODE.JS
- PYTHON
- PHP
- GO
- در این نمونه کد از cURL استفاده شده است که میتوانیدتوسط
sudo apt install curl
آن را نصب کنید.
curl -X POST https://api.pushe.co/v2/messaging/rapid/ \
-H 'authorization: Token YOUR_TOKEN' \
-H 'content-type: application/json' \
-d '{
"app_id": "YOUR_APP_ID",
"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/rapid/`;
const options = {
headers: {
'Authorization': `Token ${YOUR_TOKEN}`,
'Content-Type': 'application/json'
}
};
const data = {
app_id: YOUR_APP_ID,
data: {
title: 'عنوان پیام',
content: 'متن پیام'
},
device_id: [
'device_id_1',
'device_id_2',
]
};
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/rapid/'
headers = {
'Authorization': f'Token {YOUR_TOKEN}',
'Content-Type': 'application/json'
}
payload = json.dumps({
'app_id': YOUR_APP_ID,
'data': {
'title': 'عنوان اعلان',
'content': 'متن اعلان'
},
'device_id': [
'device_id_1',
'device_id_2',
]
})
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/rapid/');
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_id' => $YOUR_APP_ID,
'data' => array(
'title' => 'عنوان پیام',
'content' => 'متن پیام'
),
'device_id' => array(
'device_id_1',
'device_id_2'
)
)));
$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/rapid/"
payload := map[string]interface{}{
"app_id" : YOUR_APP_ID,
"data": map[string]string{
"title": "عنوان اعلان",
"content": "متن اعلان",
},
"device_id": []string{
"device_id_1",
"device_id_2",
}
}
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))
}