ข้อความ Push

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

ภาพรวม

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

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

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

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

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

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

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

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

หากต้องการขอข้อความ 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 อักขระ

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

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

    • ใช้รูปแบบการเข้ารหัสที่ขยายได้ เช่น การค้นหา 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 เพื่อระบุว่า การแจ้งเตือนต่างๆ เริ่มขึ้น ค่าส่วนหัว X-Goog-Resource-State HTTP สำหรับข้อความเหล่านี้คือ 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 จำนวนเต็มที่ระบุข้อความนี้สำหรับช่องทางการแจ้งเตือนนี้ ค่าคือ 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 เวลาคือวันที่แบบเต็มพร้อมชั่วโมง นาที และวินาทีในรูปแบบ ปปปป-ดด-วว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 ประเภท ได้แก่ ข้อความซิงค์และการแจ้งเตือนเหตุการณ์ ประเภทข้อความจะระบุอยู่ในส่วนหัว HTTP X-Goog-Resource-State ค่าที่เป็นไปได้สำหรับการแจ้งเตือนกิจกรรมจะเหมือนกับเมธอด 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"
}