ข้อความ Push

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

ภาพรวม

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

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

  • ตั้งค่า URL รับหรือตัวรับ Callback "เว็บฮุค"

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

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

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

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

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

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

สร้างคำขอดูนาฬิกา

ทรัพยากร Admin SDK API ที่รับชมได้แต่ละรายการจะมีวิธีการ 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", // Your channel ID.
  "type": "web_hook",
  "address": "https://mydomain.com/notifications", // Your receiving URL.
  ...
  "token": "target=myApp-myFilesChannelDest", // (Optional) Your channel token.
  "payload": true, // (Optional) Whether to include the payload (message body) in notifications.
  "expiration": 3600 // (Optional) Your requested channel expiration time.
}

คุณสามารถใช้พารามิเตอร์ 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 อักขระ

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

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

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

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

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

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

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

ดูการตอบกลับ

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

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

{
  "kind": "api#channel",
  "id": "reportsApiId", // ID you specified for this channel.
  "resourceId": "o3hgv1538sdjfh", // ID of the watched resource.
  "resourceUri": "https://admin.googleapis.com/admin/reports/v1/activity/userKey/applications/applicationName", // Version-specific ID of the watched resource.
  "token": "target=myApp-myFilesChannelDest", // Present only if one was provided.
  "expiration": 3600, // Actual expiration time as Unix timestamp (in ms), if applicable.
}

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

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

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

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

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

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

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

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

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

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

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

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

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

ส่วนหัว

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

ส่วนหัว คำอธิบาย
แสดงอยู่เสมอ
X-Goog-Channel-ID UUID หรือสตริงที่ไม่ซ้ำกันอื่นๆ ที่คุณระบุเพื่อระบุแชแนลการแจ้งเตือนนี้
X-Goog-Message-Number จำนวนเต็มที่ระบุข้อความนี้สำหรับช่องทางการแจ้งเตือนนี้ ค่าสำหรับข้อความ sync คือ 1 เสมอ จำนวนข้อความที่เพิ่มขึ้นสำหรับแต่ละข้อความที่ตามมาบนช่องทาง แต่จะไม่มีจำนวนเพิ่มขึ้นตามลำดับ
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 เวลาคือวันที่แบบเต็มพร้อมชั่วโมง นาที และวินาทีในรูปแบบ ปปปป-ดด-ววTชช:นน:ววTZD เช่น 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 // Your receiving URL.
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 // Your receiving URL.
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 จะลองอีกครั้งโดยใช้การถดถอยแบบเลขชี้กำลัง รหัสสถานะการคืนสินค้าอื่นๆ ทั้งหมดจะถือว่าเป็นข้อความล้มเหลว

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

ส่วนนี้จะแสดงรายละเอียดเกี่ยวกับข้อความแจ้งเตือนที่คุณได้รับเมื่อใช้ข้อความ 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"
}