ข้อความ Push

เอกสารนี้อธิบายวิธีใช้การแจ้งเตือนแบบพุชที่แจ้งให้แอปพลิเคชันทราบเมื่อมีการเปลี่ยนแปลงทรัพยากร

ภาพรวม

Admin SDK API มีข้อความ Push ที่ช่วยให้คุณตรวจสอบ การเปลี่ยนแปลงในทรัพยากรได้ คุณใช้ฟีเจอร์นี้เพื่อปรับปรุงประสิทธิภาพของ แอปพลิเคชันได้ ซึ่งช่วยให้คุณไม่ต้องเสียค่าใช้จ่ายเพิ่มเติมด้านเครือข่ายและการประมวลผล ที่เกี่ยวข้องกับการสำรวจทรัพยากรเพื่อดูว่ามีการเปลี่ยนแปลงหรือไม่ เมื่อใดก็ตามที่ทรัพยากรที่ดูมีการเปลี่ยนแปลง Admin SDK API จะแจ้งเตือนแอปพลิเคชันของคุณ

หากต้องการใช้ข้อความ Push คุณต้องทำ 2 สิ่งต่อไปนี้

  • ตั้งค่า URL ที่รับหรือเครื่องรับการเรียกกลับ "Webhook"

    ซึ่งเป็นเซิร์ฟเวอร์ HTTPS ที่จัดการข้อความการแจ้งเตือน API ที่ทริกเกอร์เมื่อทรัพยากรมีการเปลี่ยนแปลง

  • ตั้งค่า (ช่องการแจ้งเตือน) สำหรับปลายทางของทรัพยากรแต่ละรายการที่ต้องการ ดู

    ช่องจะระบุข้อมูลการกำหนดเส้นทางสำหรับการแจ้งเตือน ข้อความ คุณต้องระบุ URL ที่เฉพาะเจาะจงซึ่งต้องการรับการแจ้งเตือนเป็นส่วนหนึ่งของการตั้งค่าช่อง เมื่อใดก็ตามที่ทรัพยากรของช่องมีการเปลี่ยนแปลง API ของ Admin SDK จะส่งข้อความแจ้งเตือนเป็นPOST คำขอไปยัง URL นั้น

ปัจจุบัน API ของ Admin SDK รองรับการแจ้งเตือนสำหรับการเปลี่ยนแปลงทรัพยากรกิจกรรม

สร้างช่องทางการแจ้งเตือน

หากต้องการขอรับการแจ้งเตือนแบบพุช คุณต้องตั้งค่าแชแนลการแจ้งเตือน สำหรับแต่ละทรัพยากรที่ต้องการตรวจสอบ หลังจากตั้งค่าช่องการแจ้งเตือนแล้ว API ของ Admin SDK จะแจ้งให้แอปพลิเคชันทราบเมื่อมีการเปลี่ยนแปลงทรัพยากรที่ดู

ส่งคำขอให้ดู

ทรัพยากร API ของ Admin SDK ที่ดูได้แต่ละรายการจะมีเมธอด watch ที่เชื่อมโยงกันที่ URI ในรูปแบบต่อไปนี้

https://www.googleapis.com/API_NAME/API_VERSION/RESOURCE_PATH/watch

หากต้องการตั้งค่าแชแนลการแจ้งเตือนสำหรับข้อความเกี่ยวกับการเปลี่ยนแปลงทรัพยากรหนึ่งๆ ให้ส่งPOSTคำขอไปยังเมธอด watch ของทรัพยากรนั้น

ช่องทางการแจ้งเตือนแต่ละช่องจะเชื่อมโยงกับทั้งผู้ใช้และทรัพยากร (หรือชุดทรัพยากร) ที่เฉพาะเจาะจง คำขอ watch จะไม่สำเร็จเว้นแต่ผู้ใช้ปัจจุบัน หรือบัญชีบริการ จะเป็นเจ้าของหรือมีสิทธิ์เข้าถึงทรัพยากรนี้

ตัวอย่าง

คำขอรับชมทั้งหมดสำหรับทรัพยากร "กิจกรรม" จะมีรูปแบบทั่วไปดังนี้

POST https://admin.googleapis.com/admin/reports/v1/activity/users/userKey or all/applications/applicationName/watch
Authorization: Bearer auth_token_for_current_user
Content-Type: application/json

{
  "id": "01234567-89ab-cdef-0123456789ab",
  "type": "web_hook",
  "address": "https://mydomain.com/notifications",
  ...
  "token": "target=myApp-myFilesChannelDest",
  "payload": true,
  "expiration": 3600
}

เนื้อหาของคำขอมีพร็อพเพอร์ตี้ต่อไปนี้

  • id: สตริง UUID หรือสตริงที่ไม่ซ้ำกันที่คล้ายกันซึ่งระบุช่องนี้
  • type: ประเภทของกลไกการนำส่ง ค่าของช่องนี้ต้องเป็น web_hook
  • address: URL ที่จะส่งการแจ้งเตือน
  • token: สตริงที่กำหนดเองซึ่งส่งไปยังที่อยู่เป้าหมายพร้อมกับการแจ้งเตือนแต่ละครั้ง เพื่อวัตถุประสงค์ในการยืนยันว่าการแจ้งเตือนมาจากแหล่งที่มาที่เชื่อถือได้
  • payload: ธงบูลีนที่ระบุว่าควรใส่เพย์โหลดในการแจ้งเตือนหรือไม่
  • expiration: เวลาในการใช้งานเป็นวินาทีสำหรับช่องการแจ้งเตือน

คุณใช้พารามิเตอร์ userKey, applicationName, eventName และ filters เพื่อรับการแจ้งเตือนสำหรับเหตุการณ์ ผู้ใช้ หรือแอปพลิเคชันที่เฉพาะเจาะจงเท่านั้นได้

หมายเหตุ: ตัวอย่างต่อไปนี้จะละเว้นเนื้อหาคำขอเพื่อให้เข้าใจได้ง่าย

ดูการดำเนินการของผู้ดูแลระบบทั้งหมด

POST https://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/admin/watch

ดูการทำงานทั้งหมดในเอกสาร

POST https://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/docs/watch

หากต้องการดูกิจกรรมของผู้ดูแลระบบของผู้ใช้ที่เฉพาะเจาะจง ให้ทำดังนี้

POST https://admin.googleapis.com/admin/reports/v1/activity/users/liz@example.com/applications/admin/watch

เฝ้าสังเกตเหตุการณ์ที่เฉพาะเจาะจง เช่น การเปลี่ยนรหัสผ่านของผู้ใช้

POST https://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/admin/watch?eventName=CHANGE_PASSWORD

วิธีดูการเปลี่ยนแปลงในเอกสารที่เฉพาะเจาะจง

POST https://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/docs/watch?eventName=EDIT&filters==doc_id=123456abcdef

พร็อพเพอร์ตี้ที่จำเป็น

คุณต้องระบุฟิลด์ต่อไปนี้ในคำขอ watch แต่ละรายการ

  • id สตริงพร็อพเพอร์ตี้ที่ระบุช่องทางการแจ้งเตือนใหม่นี้ได้อย่างไม่ซ้ำกัน ภายในโปรเจ็กต์ เราขอแนะนำให้ใช้ ตัวระบุที่ไม่ซ้ำกับผู้อื่น (UUID) หรือสตริงที่ไม่ซ้ำ ที่คล้ายกัน ความยาวสูงสุด 64 อักขระ

    ระบบจะส่งค่ารหัสที่คุณตั้งค่าไว้กลับมาใน X-Goog-Channel-Id ส่วนหัว HTTP ของข้อความ การแจ้งเตือนทุกข้อความที่คุณได้รับสำหรับช่องนี้

  • สตริงพร็อพเพอร์ตี้ type ที่ตั้งค่าเป็น web_hook

  • addressสตริงพร็อพเพอร์ตี้ที่ตั้งค่าเป็น URL ที่รับฟัง และตอบกลับการแจ้งเตือนสำหรับช่องการแจ้งเตือนนี้ นี่คือ URL การเรียกกลับของ Webhook และต้องใช้ HTTPS

    โปรดทราบว่า Admin SDK API จะส่งการแจ้งเตือนไปยังที่อยู่ HTTPS นี้ได้ก็ต่อเมื่อมีการติดตั้งใบรับรอง SSL ที่ถูกต้องในเว็บเซิร์ฟเวอร์ ใบรับรองที่ไม่ถูกต้องมีดังนี้

    • ใบรับรองแบบ Self-signed
    • ใบรับรองที่ลงนามโดยแหล่งที่มาที่ไม่น่าเชื่อถือ
    • ใบรับรองที่เพิกถอนไปแล้ว
    • ใบรับรองที่มีเรื่องที่ไม่ตรงกับชื่อโฮสต์เป้าหมาย

พร็อพเพอร์ตี้ที่ไม่บังคับ

นอกจากนี้ คุณยังระบุฟิลด์ที่ไม่บังคับเหล่านี้พร้อมกับ watch คำขอได้ด้วย

  • พร็อพเพอร์ตี้ token ที่ระบุค่าสตริงแบบสุ่ม เพื่อใช้เป็นโทเค็นช่อง คุณใช้โทเค็นช่องทางการแจ้งเตือน เพื่อวัตถุประสงค์ต่างๆ ได้ เช่น คุณสามารถใช้โทเค็น เพื่อยืนยันว่าข้อความขาเข้าแต่ละข้อความมีไว้สำหรับช่องทางที่แอปพลิเคชัน ของคุณสร้างขึ้น เพื่อให้แน่ใจว่าการแจ้งเตือนไม่ได้ถูก ปลอมแปลง หรือเพื่อกำหนดเส้นทางข้อความไปยังปลายทางที่ถูกต้องภายใน แอปพลิเคชันของคุณตามวัตถุประสงค์ของช่องทางนี้ ความยาวสูงสุด 256 อักขระ

    โทเค็นจะรวมอยู่ใน X-Goog-Channel-Token ส่วนหัว HTTP ในข้อความแจ้งเตือนทุกข้อความ ที่แอปพลิเคชันของคุณได้รับสำหรับช่องนี้

    หากใช้โทเค็นแชแนลการแจ้งเตือน เราขอแนะนำให้คุณทำดังนี้

    • ใช้รูปแบบการเข้ารหัสที่ขยายได้ เช่น พารามิเตอร์การค้นหาของ URL ตัวอย่าง: forwardTo=hr&createdBy=mobile

    • อย่าใส่ข้อมูลที่ละเอียดอ่อน เช่น โทเค็น OAuth

  • expirationสตริงพร็อพเพอร์ตี้ที่ตั้งค่าเป็น การประทับเวลา Unix (เป็นมิลลิวินาที) ของวันที่และเวลาที่คุณต้องการให้ Admin SDK API หยุดส่งข้อความสำหรับช่องทางการแจ้งเตือนนี้

    หากช่องมีเวลาหมดอายุ ระบบจะรวมเวลาดังกล่าวเป็นค่า ของX-Goog-Channel-Expirationส่วนหัว HTTP (ในรูปแบบที่มนุษย์อ่านได้ ) ในข้อความแจ้งเตือนทุกข้อความที่แอปพลิเคชัน ของคุณได้รับสำหรับช่องนี้

โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับคำขอในเมธอด watch สำหรับทรัพยากรกิจกรรมในข้อมูลอ้างอิง API

ดูคำตอบ

หากคำขอ watch สร้างช่องการแจ้งเตือนสำเร็จ ระบบจะแสดงรหัสสถานะ 200 OK HTTP

เนื้อหาข้อความของการตอบกลับการดูจะให้ข้อมูลเกี่ยวกับ ช่องทางการแจ้งเตือนที่คุณเพิ่งสร้าง ดังตัวอย่างด้านล่าง

{
  "kind": "api#channel",
  "id": "reportsApiId",
  "resourceId": "o3hgv1538sdjfh",
  "resourceUri": "https://admin.googleapis.com/admin/reports/v1/activity/userKey/applications/applicationName",
  "token": "target=myApp-myFilesChannelDest",
  "expiration": 3600
}

นอกจากพร็อพเพอร์ตี้ที่คุณส่งเป็นส่วนหนึ่งของคำขอแล้ว ข้อมูลที่ส่งคืนยังรวมถึง resourceId และ resourceUri เพื่อระบุแหล่งข้อมูลที่กำลังรับชมในช่องทางการแจ้งเตือนนี้ด้วย

คุณสามารถส่งข้อมูลที่ได้รับไปยังการดำเนินการช่องทางการแจ้งเตือนอื่นๆ ได้ เช่น เมื่อต้องการหยุดรับการแจ้งเตือน

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการตอบกลับได้ที่เมธอด watch สำหรับทรัพยากร Activities ในการอ้างอิง API

ซิงค์ข้อความ

หลังจากสร้างช่องทางการแจ้งเตือนเพื่อดูทรัพยากรแล้ว Admin SDK API จะส่งsyncข้อความเพื่อระบุว่า การแจ้งเตือนกำลังจะเริ่มขึ้น ค่าส่วนหัว HTTP ของ X-Goog-Resource-State สำหรับข้อความเหล่านี้คือ sync เนื่องจากปัญหาด้านเวลาของเครือข่าย คุณอาจได้รับsyncข้อความwatchก่อนที่จะได้รับการตอบกลับจากวิธีการwatch

คุณไม่จำเป็นต้องสนใจsyncการแจ้งเตือนนี้ แต่ก็ใช้ได้เช่นกัน ตัวอย่างเช่น หากคุณตัดสินใจว่าไม่ต้องการเก็บช่องไว้ คุณสามารถใช้ค่า X-Goog-Channel-ID และ X-Goog-Resource-ID ในการเรียกเพื่อหยุดรับการแจ้งเตือน นอกจากนี้ คุณยังใช้syncการแจ้งเตือนเพื่อทำการเริ่มต้นบางอย่างเพื่อเตรียมพร้อมสำหรับ เหตุการณ์ในภายหลังได้ด้วย

รูปแบบของsyncข้อความที่ Admin SDK API ส่งไปยัง URL ที่รับของคุณแสดงอยู่ด้านล่าง

POST https://mydomain.com/notifications // Your receiving URL.
X-Goog-Channel-ID: channel-ID-value
X-Goog-Channel-Token: channel-token-value
X-Goog-Channel-Expiration: expiration-date-and-time // In human-readable format. Present only if the channel expires.
X-Goog-Resource-ID: identifier-for-the-watched-resource
X-Goog-Resource-URI: version-specific-URI-of-the-watched-resource
X-Goog-Resource-State: sync
X-Goog-Message-Number: 1

ข้อความที่ซิงค์จะมีค่าส่วนหัว HTTP X-Goog-Message-Number เป็น 1 เสมอ การแจ้งเตือนครั้งต่อๆ ไปสำหรับช่องนี้จะมีหมายเลขข้อความที่มากกว่าครั้งก่อนหน้า แต่หมายเลขข้อความจะไม่เรียงตามลำดับ

ต่ออายุช่องทางการแจ้งเตือน

แชแนลการแจ้งเตือนอาจมีเวลาหมดอายุ โดยมีค่า ที่กำหนดโดยคำขอของคุณหรือโดยขีดจำกัดภายในของ Admin SDK API หรือค่าเริ่มต้น (ระบบจะใช้ค่าที่จำกัดมากกว่า) เวลาหมดอายุของแชแนล (หากมี) จะรวมอยู่ในรูปแบบการประทับเวลา Unix (เป็นมิลลิวินาที) ในข้อมูลที่ส่งคืนโดยเมธอด watch นอกจากนี้ วันที่และเวลาหมดอายุ (ในรูปแบบที่มนุษย์อ่านได้) จะรวมอยู่ในข้อความแจ้งเตือนทุกข้อความที่แอปพลิเคชันของคุณได้รับสำหรับช่องนี้ในX-Goog-Channel-Expirationส่วนหัว HTTP

ปัจจุบันยังไม่มีวิธีต่ออายุช่องทางการแจ้งเตือนโดยอัตโนมัติ เมื่อ ช่องใกล้หมดอายุ คุณต้องแทนที่ด้วยช่องใหม่โดยเรียกใช้ เมธอด watch คุณต้องใช้ค่าที่ไม่ซ้ำกันสำหรับพร็อพเพอร์ตี้ id ของช่องใหม่เสมอ โปรดทราบว่าอาจมีช่วงเวลาที่ "ทับซ้อนกัน" เมื่อช่องทางการแจ้งเตือน 2 ช่องสำหรับทรัพยากรเดียวกันทำงานอยู่

รับการแจ้งเตือน

เมื่อใดก็ตามที่ทรัพยากรที่ดูมีการเปลี่ยนแปลง แอปพลิเคชันของคุณจะได้รับข้อความแจ้งเตือนที่อธิบายการเปลี่ยนแปลงนั้น Admin SDK API จะส่งข้อความเหล่านี้เป็นคำขอ HTTPS POST ไปยัง URL ที่คุณระบุเป็นพร็อพเพอร์ตี้ address สำหรับช่องทางการแจ้งเตือนนี้

ตีความรูปแบบข้อความแจ้งเตือน

ข้อความแจ้งเตือนทั้งหมดจะมีชุดส่วนหัว HTTP ที่มีคำนำหน้า X-Goog- การแจ้งเตือนบางประเภทอาจมี เนื้อหาข้อความด้วย

ส่วนหัว

ข้อความการแจ้งเตือนที่ API ของ Admin SDK โพสต์ไปยัง URL ที่รับของคุณมีส่วนหัว HTTP ต่อไปนี้

ส่วนหัว คำอธิบาย
พร้อมใช้งานเสมอ
X-Goog-Channel-ID UUID หรือสตริงอื่นๆ ที่ไม่ซ้ำกันที่คุณระบุเพื่อระบุช่องทางการแจ้งเตือนนี้
X-Goog-Message-Number จำนวนเต็มที่ระบุข้อความนี้สำหรับช่องทางการแจ้งเตือนนี้ ค่าจะเป็น 1 เสมอสำหรับข้อความ sync หมายเลข ข้อความจะเพิ่มขึ้นสำหรับข้อความถัดไปแต่ละข้อความในช่อง แต่ หมายเลขจะไม่เรียงตามลำดับ
X-Goog-Resource-ID ค่าทึบแสงที่ระบุทรัพยากรที่ดู รหัสนี้จะ คงที่ใน API ทุกเวอร์ชัน
X-Goog-Resource-State สถานะทรัพยากรใหม่ที่ทริกเกอร์การแจ้งเตือน ค่าที่เป็นไปได้มีดังนี้ sync หรือชื่อเหตุการณ์
X-Goog-Resource-URI ตัวระบุเฉพาะเวอร์ชัน API สำหรับทรัพยากรที่ดู
บางครั้ง
X-Goog-Channel-Expiration วันที่และเวลาที่ช่องทางการแจ้งเตือนหมดอายุ ซึ่งแสดงใน รูปแบบที่มนุษย์อ่านได้ แสดงต่อเมื่อมีการกำหนด
X-Goog-Channel-Token โทเค็นแชแนลการแจ้งเตือนที่แอปพลิเคชันของคุณตั้งค่าไว้ และ ที่คุณใช้เพื่อยืนยันแหล่งที่มาของการแจ้งเตือนได้ แสดงต่อเมื่อมีการกำหนดไว้เท่านั้น

ข้อความแจ้งเตือนสำหรับกิจกรรมจะมีข้อมูลต่อไปนี้ในเนื้อหาคำขอ

พร็อพเพอร์ตี้ คำอธิบาย
kind ระบุว่านี่คือทรัพยากรกิจกรรม ค่า: สตริงคงที่ "admin#reports#activity"
id ตัวระบุที่ไม่ซ้ำกันของบันทึกกิจกรรม
id.time เวลาที่เกิดกิจกรรม ค่าอยู่ในรูปแบบวันที่และเวลา ISO 8601 เวลา คือวันที่แบบเต็มพร้อมชั่วโมง นาที และวินาทีในรูปแบบ YYYY-MM-DDThh:mm:ssTZD เช่น 2010-04-05T17:30:04+01:00
id.uniqueQualifier ตัวระบุที่ไม่ซ้ำหากมีเหตุการณ์หลายรายการที่มีเวลาเดียวกัน
id.applicationName ชื่อแอปพลิเคชันที่กิจกรรมเป็นของ ค่าที่เป็นไปได้ ได้แก่
id.customerId ตัวระบุที่ไม่ซ้ำกันสำหรับบัญชี Google Workspace
actor ผู้ใช้ที่ดำเนินการ
actor.callerType ประเภทผู้เขียนที่ทำกิจกรรมที่แสดงในรายงาน ใน API เวอร์ชันนี้ callerType คือคำขอของเอนทิตี USER หรือ OAuth 2LO ที่ดำเนินการตามที่ระบุไว้ในรายงาน
actor.email อีเมลหลักของผู้ใช้ที่มีการรายงานกิจกรรม
actor.profileId รหัสโปรไฟล์ Google Workspace ที่ไม่ซ้ำกันของผู้ใช้
ownerDomain โดเมนของคอนโซลผู้ดูแลระบบหรือเจ้าของเอกสารของแอปพลิเคชันเอกสาร นี่คือโดเมนที่ได้รับผลกระทบจากเหตุการณ์ของรายงาน
ipAddress ที่อยู่ IP ของผู้ใช้ที่ดำเนินการ นี่คือที่อยู่ Internet Protocol (IP) ของผู้ใช้เมื่อเข้าสู่ระบบ Google Workspace ซึ่งอาจตรงหรือไม่ตรงกับตำแหน่งจริงของผู้ใช้ก็ได้ เช่น ที่อยู่ IP อาจเป็นที่อยู่ของพร็อกซีเซิร์ฟเวอร์ของผู้ใช้หรือที่อยู่เครือข่ายส่วนตัวเสมือน (VPN) API รองรับ IPv4 และ IPv6
events[] เหตุการณ์กิจกรรมในรายงาน
events[].type ประเภทเหตุการณ์ บริการหรือฟีเจอร์ของ Google Workspace ที่ผู้ดูแลระบบเปลี่ยนแปลงจะระบุไว้ในพร็อพเพอร์ตี้ type ซึ่งระบุเหตุการณ์โดยใช้พร็อพเพอร์ตี้ eventName
events[].name ชื่อกิจกรรม นี่คือชื่อเฉพาะของกิจกรรมที่ API รายงาน และแต่ละ eventName จะเกี่ยวข้องกับบริการหรือฟีเจอร์ที่เฉพาะเจาะจงของ Google Workspace ซึ่ง API จะจัดระเบียบเป็นประเภทของเหตุการณ์
สำหรับeventNameพารามิเตอร์คำขอโดยทั่วไป
  • หากไม่ได้ระบุ eventName รายงานจะแสดงอินสแตนซ์ที่เป็นไปได้ทั้งหมดของ eventName
  • เมื่อคุณขอ eventName การตอบกลับของ API จะแสดงกิจกรรมทั้งหมดที่มี eventName นั้น กิจกรรมที่แสดงอาจมีพร็อพเพอร์ตี้ eventName อื่นๆ นอกเหนือจากที่ขอ
events[].parameters[] คู่ค่าพารามิเตอร์สำหรับแอปพลิเคชันต่างๆ
events[].parameters[].name ชื่อพารามิเตอร์
events[].parameters[].value ค่าสตริงของพารามิเตอร์
events[].parameters[].intValue ค่าจำนวนเต็มของพารามิเตอร์
events[].parameters[].boolValue ค่าบูลีนของพารามิเตอร์

ตัวอย่าง

ข้อความแจ้งเตือนสำหรับเหตุการณ์ทรัพยากรกิจกรรมจะมีรูปแบบทั่วไปดังนี้

POST https://mydomain.com/notifications
Content-Type: application/json; utf-8
Content-Length: 0
X-Goog-Channel-ID: reportsApiId
X-Goog-Channel-Token: 398348u3tu83ut8uu38
X-Goog-Channel-Expiration: Tue, 29 Oct 2013 20:32:02 GMT
X-Goog-Resource-ID:  ret08u3rv24htgh289g
X-Goog-Resource-URI: https://admin.googleapis.com/admin/reports/v1/activity/userKey/applications/applicationName
X-Goog-Resource-State:  eventName
X-Goog-Message-Number: 10

{
  "kind": "admin#reports#activity",
  "id": {
    "time": datetime,
    "uniqueQualifier": long,
    "applicationName": string,
    "customerId": string
  },
  "actor": {
    "callerType": string,
    "email": string,
    "profileId": long
  },
  "ownerDomain": string,
  "ipAddress": string,
  "events": [
    {
      "type": string,
      "name": string,
      "parameters": [
        {
          "name": string,
          "value": string,
          "intValue": long,
          "boolValue": boolean
        }
      ]
    }
  ]
}

ตัวอย่างเหตุการณ์กิจกรรมของผู้ดูแลระบบ

POST https://mydomain.com/notifications
Content-Type: application/json; utf-8
Content-Length: 596
X-Goog-Channel-ID: reportsApiId
X-Goog-Channel-Token: 245t1234tt83trrt333
X-Goog-Channel-Expiration: Tue, 29 Oct 2013 20:32:02 GMT
X-Goog-Resource-ID:  ret987df98743md8g
X-Goog-Resource-URI: https://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/admin?alt=json
X-Goog-Resource-State:  CREATE_USER
X-Goog-Message-Number: 23

{
  "kind": "admin#reports#activity",
  "id": {
    "time": "2013-09-10T18:23:35.808Z",
    "uniqueQualifier": "-0987654321",
    "applicationName": "admin",
    "customerId": "ABCD012345"
  },
  "actor": {
    "callerType": "USER",
    "email": "admin@example.com",
    "profileId": "0123456789987654321"
  },
  "ownerDomain": "apps-reporting.example.com",
  "ipAddress": "192.0.2.0",
  "events": [
    {
      "type": "USER_SETTINGS",
      "name": "CREATE_USER",
      "parameters": [
        {
          "name": "USER_EMAIL",
          "value": "liz@example.com"
        }
      ]
    }
  ]
}

ตอบสนองต่อการแจ้งเตือนต่างๆ

หากต้องการระบุว่าสำเร็จ คุณสามารถแสดงรหัสสถานะต่อไปนี้ 200, 201, 202, 204 หรือ 102

หากบริการของคุณใช้ไลบรารีไคลเอ็นต์ API ของ Google และแสดงผล 500, 502, 503 หรือ 504, Admin SDK API จะลองอีกครั้งโดยใช้การถอยแบบทวีคูณ รหัสสถานะการคืนสินค้าอื่นๆ ทั้งหมดจะถือว่าเป็นข้อความที่ไม่สำเร็จ

ทำความเข้าใจเหตุการณ์การแจ้งเตือน API ของ Admin SDK

ส่วนนี้จะให้รายละเอียดเกี่ยวกับข้อความแจ้งที่คุณจะได้รับเมื่อใช้ข้อความ Push กับ Admin SDK API

การแจ้งเตือนแบบพุชของ Reports API มีข้อความ 2 ประเภท ได้แก่ ข้อความซิงค์และการแจ้งเตือนเหตุการณ์ โดยประเภทข้อความจะระบุไว้ในX-Goog-Resource-Stateส่วนหัว HTTP ค่าที่เป็นไปได้สำหรับการแจ้งเตือนกิจกรรมจะเหมือนกับค่าของเมธอด activities.list แต่ละแอปพลิเคชันมีเหตุการณ์ที่ไม่ซ้ำกันดังนี้

ปิดการแจ้งเตือน

พร็อพเพอร์ตี้ expiration จะควบคุมเวลาที่การแจ้งเตือนจะหยุดโดยอัตโนมัติ คุณเลือกหยุดรับการแจ้งเตือนสำหรับช่องหนึ่งๆ ก่อนที่การแจ้งเตือนจะหมดอายุได้โดยเรียกใช้เมธอด stop ที่ URI ต่อไปนี้

https://www.googleapis.com/admin/reports_v1/channels/stop

วิธีนี้กำหนดให้คุณต้องระบุพร็อพเพอร์ตี้ id และ resourceId ของช่องเป็นอย่างน้อย ดังที่แสดงในตัวอย่างด้านล่าง โปรดทราบว่าหาก Admin SDK API มีทรัพยากรหลายประเภทที่มีเมธอด watch จะมีเมธอด stop เพียงเมธอดเดียว

เฉพาะผู้ใช้ที่มีสิทธิ์ที่เหมาะสมเท่านั้นที่จะหยุดช่องได้ โดยเฉพาะอย่างยิ่งฟีเจอร์ต่อไปนี้

  • หากช่องสร้างขึ้นโดยบัญชีผู้ใช้ทั่วไป เฉพาะผู้ใช้รายเดียวกันจากไคลเอ็นต์เดียวกัน (ตามที่ระบุโดยรหัสไคลเอ็นต์ OAuth 2.0 จากโทเค็นการให้สิทธิ์) ที่สร้างช่องเท่านั้นที่จะหยุดช่องได้
  • หากช่องสร้างขึ้นโดยบัญชีบริการ ผู้ใช้จากไคลเอ็นต์เดียวกันจะหยุดช่องได้

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีหยุดรับการแจ้งเตือน

POST https://www.googleapis.com/admin/reports_v1/channels/stop
  
Authorization: Bearer CURRENT_USER_AUTH_TOKEN
Content-Type: application/json

{
  "id": "4ba78bf0-6a47-11e2-bcfd-0800200c9a66",
  "resourceId": "ret08u3rv24htgh289g"
}