ข้อความ Push

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

ภาพรวม

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

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

  • ตั้งค่าตัวรับการเรียกกลับของ URL หรือ "เว็บฮุค"

    ซึ่งเป็นเซิร์ฟเวอร์ 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 อักขระ

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

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

  • สตริงพร็อพเพอร์ตี้ address ที่ตั้งค่าเป็น URL ที่ฟังและตอบสนองต่อการแจ้งเตือนสำหรับช่องทางการแจ้งเตือนนี้ นี่คือ URL เรียกกลับของเว็บฮุคและต้องใช้ 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 สําหรับทรัพยากร Activity ในการอ้างอิง 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

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

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

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

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

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

เมื่อใดก็ตามที่มีการเปลี่ยนแปลงของแหล่งข้อมูลที่ดู แอปพลิเคชันของคุณจะได้รับข้อความแจ้งเตือนที่อธิบายการเปลี่ยนแปลงดังกล่าว Admin SDK API จะส่งข้อความเหล่านี้เป็นคำขอ HTTPS POST ไปยัง 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 เวลาคือวันที่แบบเต็มพร้อมชั่วโมง นาที และวินาทีในรูปแบบ 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 // 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

ข้อความ Push ของ 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"
}