Swift โ Native HTTP
Use Native HTTP Request in Swift
Create a class EvntalyClient
EvntalyClient
import Foundation
class EvntalyClient {
let projectToken: String
let developerSecret: String
let baseUrl = "https://app.evntaly.com/prod"
init(projectToken: String, developerSecret: String) {
self.projectToken = projectToken
self.developerSecret = developerSecret
}
}
Track Event
func sendEvent() {
let url = URL(string: "\(baseUrl)/api/v1/register/event")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue(projectToken, forHTTPHeaderField: "pat")
request.setValue(developerSecret, forHTTPHeaderField: "secret")
let payload: [String: Any] = [
"title": "Account License Upgraded",
"description": "User upgraded their license to Pro",
"message": "take care.",
"data": [
"user_id": "67890",
"timestamp": "2025-01-08T09:30:00Z",
"referrer": "social_media",
"email_verified": false
],
"tags": [],
"notify": true,
"icon": "โคด๏ธ",
"apply_rule_only": false,
"user": ["id": "0f6934fd-99c0-41ca-84f4"],
"type": "Page View",
"sessionID": "20750ebc-dabf-4fd4-9498-443bf30d6095_bsd",
"feature": "Backend API",
"topic": "@api"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
URLSession.shared.dataTask(with: request).resume()
}
Identify User
func identifyUser() {
let url = URL(string: "\(baseUrl)/api/v1/register/user")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue(projectToken, forHTTPHeaderField: "pat")
request.setValue(developerSecret, forHTTPHeaderField: "secret")
let payload: [String: Any] = [
"id": "0f6934fd-99c0-41ca-3333",
"email": "Alameer@evntaly.com",
"full_name": "Alameer Ashraf",
"organization": "Evntaly",
"data": [
"id": "Alameer-23",
"email": "Alameer@evntaly.com",
"Location": "Egypt",
"timezone": "Africa/Cairo"
]
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
URLSession.shared.dataTask(with: request).resume()
}
For additional help, contact support at support@evntaly.com.
Last updated