Password Pusher API เวอร์ชัน 2
เบต้าเอกสารประกอบการใช้งาน REST API อย่างครบถ้วนสำหรับการบูรณาการ Password Pusher ในแอปพลิเคชันของคุณ
ประกาศสำหรับรุ่นเบต้า: API เวอร์ชัน 2 ขณะนี้อยู่ในช่วงเบต้า แม้ว่าเราจะพยายามอย่างเต็มที่เพื่อให้มั่นใจถึงความเสถียรแล้ว แต่ก็อาจมีการเปลี่ยนแปลงที่ส่งผลกระทบต่อการทำงานก่อนการเปิดตัวเวอร์ชันเต็ม เรายินดีรับฟังความคิดเห็นของคุณ!
ดัน
การแจ้งเตือนแบบพุชช่วยให้สามารถส่งข้อมูลสำคัญไปยังผู้รับได้อย่างปลอดภัยและเป็นทางเดียว สร้างการแจ้งเตือนแบบพุชด้วย URL ลับที่มีข้อความ ไฟล์ รหัส QR หรือ URL อื่นๆ จากนั้นแชร์กับใครก็ได้ โดยไม่ต้องเปิดเผยข้อมูลสำคัญในอีเมล แชท หรือบันทึกต่างๆ
เหมาะอย่างยิ่งสำหรับการรับพนักงานใหม่ การส่งข้อมูลประจำตัวบัญชี การส่งเอกสารลับ หรือการแบ่งปันข้อมูลที่ละเอียดอ่อนใดๆ การแจ้งเตือนแบบพุชจะหมดอายุโดยอัตโนมัติหลังจากระยะเวลาที่กำหนดหรือจำนวนการดูที่กำหนด และสามารถติดตามวงจรชีวิตทั้งหมดได้ในบันทึกการตรวจสอบของการแจ้งเตือนแต่ละครั้ง
POST /api/v2/pushes
สร้างการแจ้งเตือนแบบพุชใหม่ด้วยข้อมูลที่ระบุ
เนื้อหาคำขอ (JSON)
{
"push": {
"payload": "secret_password_123",
"expire_after_duration": 6,
"expire_after_views": 5,
"passphrase": "optional_passphrase",
"name": "Database Credentials",
"note": "Internal note",
"deletable_by_viewer": true,
"retrieval_step": true,
"kind": "text"
},
"account_id": 123
}
เนื้อหาคำขอพร้อมไฟล์ (multipart/form-data)
curl -X POST https://eu.pwpush.com/api/v2/pushes \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "push[payload]=secret_password_123" \
-F "push[expire_after_duration]=6" \
-F "push[expire_after_views]=5" \
-F "push[name]=Database Credentials" \
-F "push[files][]=@/path/to/file1.pdf" \
-F "push[files][]=@/path/to/file2.txt"
บันทึก: เมื่อแนบไฟล์ โปรดใช้ multipart/form-data จัดรูปแบบและตั้งค่า kind: "file". สามารถแนบไฟล์ได้หลายไฟล์โดยใช้ push[files][].
พารามิเตอร์
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
payload
ที่จำเป็น
|
string | ข้อความลับที่จะแบ่งปัน |
expire_after_duration
ไม่จำเป็น
|
integer (0-17) | ระยะเวลา (enum) (0-17) |
expire_after_views
ไม่จำเป็น
|
integer (1-100) | จำนวนการดูก่อนหมดอายุ |
passphrase
ไม่จำเป็น
|
string | ต้องใช้รหัสผ่านเพื่อดูข้อมูล |
name
ไม่จำเป็น
|
string | ชื่อเรียกสำหรับการผลักดัน |
note
ไม่จำเป็น
|
string | หมายเหตุภายใน (ผู้สร้างเท่านั้นที่จะเห็น) |
deletable_by_viewer
ไม่จำเป็น
|
boolean | อนุญาตให้ผู้ชมลบการแจ้งเตือนได้ |
retrieval_step
ไม่จำเป็น
|
boolean | ต้องมีขั้นตอนเพิ่มเติมในการดึงข้อมูล |
kind
ไม่จำเป็น
|
string | ประเภท: "ข้อความ", "ไฟล์", "URL" หรือ "QR" (ค่าเริ่มต้นคือ "ข้อความ") |
notify_emails_to
ไม่จำเป็น
|
string | ที่อยู่อีเมลที่จะได้รับการแจ้งเตือนเมื่อมีการสร้างการแจ้งเตือนแบบพุช (คั่นด้วยเครื่องหมายจุลภาค) |
notify_emails_to_locale
ไม่จำเป็น
|
string | ภาษาที่จะใช้ส่งอีเมลแจ้งเตือน |
account_id
ไม่จำเป็น
|
integer | รหัสบัญชีที่จะใช้เชื่อมโยงการแจ้งเตือน (สำหรับผู้ใช้ที่มีหลายบัญชี) |
ค่าระยะเวลาสำหรับ expire_after_duration
ช่องตอบกลับ
ฟิลด์ต่อไปนี้จะถูกส่งกลับมาในคำตอบเมื่อสร้างการแจ้งเตือนแบบพุช หมายเหตุ: เพย์โหลดและไฟล์จะไม่ถูกส่งกลับมาเมื่อสร้างการแจ้งเตือนแบบพุช—ข้อมูลเหล่านี้จะพร้อมใช้งานเฉพาะเมื่อดึงการแจ้งเตือนแบบพุชผ่านวิธีการ GET เท่านั้น
| สนาม | ประเภท | ตัวอย่าง | คำอธิบาย |
|---|---|---|---|
| account_id | integer or null | 1 | รหัสบัญชีเจ้าของ |
| created_at | string | "2025-02-17T10:00:00.000Z" | เวลาสร้างมาตรฐาน ISO 8601 |
| days_remaining | integer | 1 | คัดค้าน เหลือจำนวนวันเต็ม (0 เมื่อเหลือน้อยกว่า 1 วัน); ควรเลือก expires_at มากกว่า expires_in |
| deletable_by_viewer | boolean | true | ผู้รับสามารถลบการแจ้งเตือนแบบพุชได้หรือไม่ |
| deleted | boolean | false | ไม่ว่าการพุชนั้นจะถูกลบอย่างชัดเจนหรือไม่ |
| expire_after_days | integer | 1 | คัดค้าน จำนวนวันโดยประมาณ (คำนวณจากระยะเวลา) |
| expire_after_duration | integer | 6 | ค่า enum ระยะเวลา (0–17); ดูตารางด้านบน |
| expire_after_views | integer | 5 | จำนวนการดูสูงสุดก่อนหมดอายุ |
| expired | boolean | false | ไม่ว่าการกดจะหมดอายุแล้วหรือไม่ |
| expired_on | string or null | null | ค่า ISO 8601 จะแสดงเมื่อการแจ้งเตือนหมดอายุ หากไม่หมดอายุจะแสดงค่าว่าง |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | เวลาหมดอายุตามมาตรฐาน ISO 8601 หากหมดอายุแล้วให้ส่งค่าว่าง (null) |
| expires_in | number | 86400 | เวลาที่เหลือก่อนหมดอายุ (0 ถ้าหมดอายุแล้ว) |
| html_url | string | "https://.../p/abc" | URL เพื่อเปิดการแจ้งเตือนแบบพุชในเบราว์เซอร์ |
| json_url | string | "https://.../p/abc.json" | URL สำหรับดึงข้อมูลการแจ้งเตือนแบบพุชในรูปแบบ JSON |
| name | string or null | "Database credentials" | ชื่อสำหรับการแจ้งเตือน (ไม่บังคับ) |
| note | string or null | null | หมายเหตุส่วนตัว (ไม่บังคับ) |
| notify_emails_to | string or null | null | อีเมลที่จะแจ้งเตือนเมื่อสร้าง (เฉพาะสมาชิกพรีเมียม) |
| passphrase | string or null | null | จะแสดงเฉพาะเมื่อการพุชมีรหัสผ่าน (ค่าถูกซ่อนไว้) |
| retrieval_step | boolean | false | จำเป็นต้องมีขั้นตอนเพิ่มเติมในการดึงข้อมูลหรือไม่ |
| updated_at | string | "2025-02-17T10:00:00.000Z" | เวลาอัปเดตครั้งล่าสุดของ ISO 8601 |
| url_token | string | "fkwjfvhall92" | รหัสลับเฉพาะสำหรับการแจ้งเตือนแบบพุช |
| views_remaining | integer | 5 | จำนวนการดูที่เหลือก่อนหมดอายุ |
ตัวอย่างคำตอบ:
{
"expire_after_duration": 6,
"expire_after_views": 5,
"expired": false,
"url_token": "fkwjfvhall92",
"deletable_by_viewer": true,
"retrieval_step": false,
"expired_on": null,
"passphrase": null,
"created_at": "2025-02-17T10:00:00.000Z",
"updated_at": "2025-02-17T10:00:00.000Z",
"expire_after_days": 1,
"views_remaining": 5,
"deleted": false,
"days_remaining": 1,
"expires_at": "2025-02-18T10:00:00.000Z",
"expires_in": 86400,
"json_url": "https://example.com/p/fkwjfvhall92.json",
"html_url": "https://example.com/p/fkwjfvhall92",
"account_id": 1,
"note": null,
"name": "Database Credentials"
}
ตัวอย่างคำขอ
curl -X POST https://eu.pwpush.com/api/v2/pushes \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"push": {
"payload": "MySecretPassword123",
"expire_after_duration": 6,
"expire_after_views": 3
}
}'
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://eu.pwpush.com/api/v2/pushes')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path)
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request['Content-Type'] = 'application/json'
request.body = {
push: {
payload: 'MySecretPassword123',
expire_after_duration: 6,
expire_after_views: 3
}
}.to_json
response = http.request(request)
puts response.body
import requests
import json
url = 'https://eu.pwpush.com/api/v2/pushes'
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
data = {
'push': {
'payload': 'MySecretPassword123',
'expire_after_duration': 6,
'expire_after_views': 3
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
$headers = @{
'Authorization' = 'Bearer YOUR_API_TOKEN'
'Content-Type' = 'application/json'
}
$body = @{
push = @{
payload = 'MySecretPassword123'
expire_after_duration = 6
expire_after_views = 3
}
} | ConvertTo-Json -Depth 10
$response = Invoke-RestMethod -Uri 'https://eu.pwpush.com/api/v2/pushes' `
-Method Post `
-Headers $headers `
-Body $body
$response | ConvertTo-Json
GET /api/v2/pushes/:url_token
ดึงข้อมูลลับของการแจ้งเตือนแบบพุช การดำเนินการนี้จะเพิ่มจำนวนการเข้าชมและอาจทำให้การแจ้งเตือนหมดอายุได้
ช่องตอบกลับ
เมื่อดึงข้อมูลการแจ้งเตือนแบบพุช ระบบจะส่งคืนค่าฟิลด์ต่อไปนี้ ปลายทางนี้จะส่งคืนข้อมูลและไฟล์ซึ่งไม่มีในปลายทางอื่นๆ
| สนาม | ประเภท | ตัวอย่าง | คำอธิบาย |
|---|---|---|---|
| created_at | string | "2025-02-17T10:00:00.000Z" | เวลาสร้างมาตรฐาน ISO 8601 |
| days_remaining | integer | 1 | คัดค้าน เหลือจำนวนวันเต็ม (0 เมื่อเหลือน้อยกว่า 1 วัน); ควรเลือก expires_at มากกว่า expires_in |
| deletable_by_viewer | boolean | true | ผู้รับสามารถลบการแจ้งเตือนแบบพุชได้หรือไม่ |
| deleted | boolean | false | ไม่ว่าการพุชนั้นจะถูกลบอย่างชัดเจนหรือไม่ |
| expire_after_days | integer | 1 | คัดค้าน จำนวนวันโดยประมาณ (คำนวณจากระยะเวลา) |
| expire_after_duration | integer | 6 | ระยะเวลา (0–17) |
| expire_after_views | integer | 5 | จำนวนการดูสูงสุดก่อนหมดอายุ |
| expired | boolean | false | ไม่ว่าการกดจะหมดอายุแล้วหรือไม่ |
| expired_on | string or null | null | ค่า ISO 8601 จะแสดงเมื่อการแจ้งเตือนหมดอายุ หากไม่หมดอายุจะแสดงค่าว่าง |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | เวลาหมดอายุตามมาตรฐาน ISO 8601 หากหมดอายุแล้วให้ส่งค่าว่าง (null) |
| expires_in | number | 86400 | เวลาที่เหลือก่อนหมดอายุ (0 ถ้าหมดอายุแล้ว) |
| files | array | [{ filename, content_type, url }] | ข้อมูลเมตาของไฟล์แนบพร้อม URL สำหรับดาวน์โหลด |
| html_url | string | "https://.../p/abc" | URL เพื่อเปิดการแจ้งเตือนแบบพุชในเบราว์เซอร์ |
| json_url | string | "https://.../p/abc.json" | URL สำหรับดึงข้อมูลการแจ้งเตือนแบบพุชในรูปแบบ JSON |
| passphrase | string or null | null | จะแสดงเฉพาะเมื่อการพุชมีรหัสผ่าน (ค่าถูกซ่อนไว้) |
| payload | string or null | "secret123" | เนื้อหาลับ; จะเป็นค่าว่างเมื่อหมดอายุ |
| retrieval_step | boolean | false | จำเป็นต้องมีขั้นตอนเพิ่มเติมในการดึงข้อมูลหรือไม่ |
| updated_at | string | "2025-02-17T10:00:00.000Z" | เวลาอัปเดตครั้งล่าสุดของ ISO 8601 |
| url_token | string | "fkwjfvhall92" | รหัสลับเฉพาะสำหรับการแจ้งเตือนแบบพุช |
| views_remaining | integer | 2 | จำนวนการดูที่เหลือก่อนหมดอายุ |
ตัวอย่างคำขอ
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92
ตัวอย่างคำขอพร้อมรหัสผ่าน
curl -X GET "https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92?passphrase=your_passphrase"
ตัวอย่างคำตอบ
{
"expire_after_duration": 6,
"expire_after_views": 3,
"expired": false,
"url_token": "fkwjfvhall92",
"deletable_by_viewer": false,
"retrieval_step": false,
"expired_on": null,
"passphrase": null,
"created_at": "2025-02-17T10:00:00.000Z",
"updated_at": "2025-02-17T10:00:00.000Z",
"expire_after_days": 1,
"views_remaining": 2,
"deleted": false,
"days_remaining": 1,
"expires_at": "2025-02-18T10:00:00.000Z",
"expires_in": 86400,
"json_url": "https://eu.pwpush.com/p/fkwjfvhall92.json",
"html_url": "https://eu.pwpush.com/p/fkwjfvhall92",
"payload": "MySecretPassword123",
"files": []
}
บันทึก: หากการแจ้งเตือนแบบพุชมีรหัสผ่าน ให้ใส่รหัสผ่านนั้นเป็นพารามิเตอร์ในการค้นหา: ?passphrase=your_passphrase. การดึงข้อมูลการแจ้งเตือนแบบพุชจะนับเป็นการดูหนึ่งครั้ง และอาจทำให้การแจ้งเตือนนั้นหมดอายุหากถึงขีดจำกัดการดูที่กำหนดไว้
GET /api/v2/pushes/:url_token/preview
ส่งคืน URL ลับแบบเต็มรูปแบบของการแจ้งเตือนแบบพุช โดยไม่ต้องดึงข้อมูลเพย์โหลด
ตัวอย่างคำขอ
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92/preview
ตัวอย่างคำตอบ
{
"url": "https://eu.pwpush.com/p/fkwjfvhall92"
}
GET /api/v2/pushes/:url_token/audit
ส่งคืนบันทึกการตรวจสอบสำหรับการพุช ต้องมีการตรวจสอบสิทธิ์และความเป็นเจ้าของ
พารามิเตอร์การค้นหา:
page (ไม่จำเป็น): หมายเลขหน้าสำหรับการจัดหน้า
- ค่าเริ่มต้น:
1(หน้าแรก) - พิสัย:
1ถึง200 - แสดงรายการบันทึกการตรวจสอบได้สูงสุด 50 รายการต่อหน้า
- ตัวอย่าง:
?page=2เพื่อเรียกดูหน้าสอง
ตัวอย่างคำขอ
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92/audit \
-H "Authorization: Bearer YOUR_API_TOKEN"
ตัวอย่างคำตอบ
{
"logs": [
{
"ip": "192.168.1.100",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"referrer": null,
"kind": "creation",
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:00:00.000Z"
},
{
"ip": "192.168.1.101",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
"referrer": "https://example.com",
"kind": "view",
"created_at": "2023-10-27T10:05:00.000Z",
"updated_at": "2023-10-27T10:05:00.000Z"
}
]
}
บันทึก: เดอะ kind ช่องนี้ระบุประเภทของการกระทำที่บันทึกไว้ ค่าทั่วไปได้แก่: creation, view, expire, failed_passphrase, และ failed_view.
DELETE /api/v2/pushes/:url_token
ดำเนินการนี้เพื่อยกเลิกการแจ้งเตือนแบบพุชทันที และลบข้อมูลสำคัญทั้งหมดอย่างถาวร รวมถึงเนื้อหาและไฟล์แนบใดๆ การกระทำนี้ไม่สามารถย้อนกลับได้ ต้องมีการตรวจสอบสิทธิ์และเป็นเจ้าของ หรือต้องสร้างการแจ้งเตือนแบบพุชโดยใช้สิทธิ์ของคุณ deletable_by_viewer: true.
ตัวอย่างคำขอ
curl -X DELETE https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92 \
-H "Authorization: Bearer YOUR_API_TOKEN"
ตัวอย่างคำตอบ
{
"expire_after_duration": 7,
"expire_after_views": 5,
"expired": true,
"url_token": "fkwjfvhall92",
"deletable_by_viewer": false,
"retrieval_step": false,
"expired_on": "2023-10-27T10:15:00.000Z",
"passphrase": null,
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:15:00.000Z",
"expire_after_days": 7,
"days_remaining": 0,
"expires_at": null,
"expires_in": 0,
"views_remaining": 0,
"deleted": true,
"json_url": "https://eu.pwpush.com/p/fkwjfvhall92.json",
"html_url": "https://eu.pwpush.com/p/fkwjfvhall92",
"account_id": 1,
"note": null,
"name": null
}
GET /api/v2/pushes/active
ส่งคืนรายการพุชที่ใช้งานอยู่ (ยังไม่หมดอายุ) โดยแบ่งเป็นหน้า ต้องมีการตรวจสอบสิทธิ์ก่อน
GET /api/v2/pushes/expired
ส่งคืนรายการพุชที่หมดอายุแล้วแบบแบ่งหน้า ต้องมีการตรวจสอบสิทธิ์ก่อนจึงจะใช้งานได้
พารามิเตอร์การค้นหา:
page (ไม่จำเป็น): หมายเลขหน้าสำหรับการจัดหน้า
- ค่าเริ่มต้น:
1(หน้าแรก) - พิสัย:
1ถึง200 - แสดงผลการแจ้งเตือนสูงสุด 50 ครั้งต่อหน้า
- ตัวอย่าง:
?page=2เพื่อเรียกดูหน้าสอง
ตัวอย่างคำขอ (ใช้งานอยู่)
curl -X GET https://eu.pwpush.com/api/v2/pushes/active \
-H "Authorization: Bearer YOUR_API_TOKEN"
ตัวอย่างคำขอ (หมดอายุแล้ว)
curl -X GET https://eu.pwpush.com/api/v2/pushes/expired \
-H "Authorization: Bearer YOUR_API_TOKEN"
ตัวอย่างคำตอบ
[
{
"expire_after_duration": 7,
"expire_after_views": 5,
"expired": false,
"url_token": "abc123xyz789",
"deletable_by_viewer": false,
"retrieval_step": false,
"expired_on": null,
"passphrase": null,
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:00:00.000Z",
"expire_after_days": 7,
"days_remaining": 7,
"expires_at": "2023-10-29T10:00:00.000Z",
"expires_in": 172800,
"views_remaining": 5,
"deleted": false,
"json_url": "https://eu.pwpush.com/p/abc123xyz789.json",
"html_url": "https://eu.pwpush.com/p/abc123xyz789",
"account_id": 1,
"note": null,
"name": null
},
{
"expire_after_duration": 1,
"expire_after_views": 3,
"expired": false,
"url_token": "def456uvw012",
"deletable_by_viewer": true,
"retrieval_step": false,
"expired_on": null,
"passphrase": null,
"created_at": "2023-10-26T15:30:00.000Z",
"updated_at": "2023-10-26T15:30:00.000Z",
"expire_after_days": 1,
"days_remaining": 0,
"expires_at": "2023-10-26T16:00:00.000Z",
"expires_in": 1200,
"views_remaining": 2,
"deleted": false,
"json_url": "https://eu.pwpush.com/p/def456uvw012.json",
"html_url": "https://eu.pwpush.com/p/def456uvw012",
"account_id": 1,
"note": null,
"name": null
}
]
อัปเดตล่าสุด: July 12, 2026