ข้อความ 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 หรือ event name
X-Goog-Resource-URI ตัวระบุเฉพาะเวอร์ชัน API สำหรับทรัพยากรที่ดู
บางครั้ง
X-Goog-Channel-Expiration วันที่และเวลาที่ช่องทางการแจ้งเตือนหมดอายุ แสดงในรูปแบบที่มนุษย์อ่านได้ แสดงเมื่อกำหนดไว้เท่านั้น
X-Goog-Channel-Token โทเค็นช่องทางการแจ้งเตือนที่แอปพลิเคชันตั้งค่าไว้ ซึ่งคุณใช้เพื่อยืนยันแหล่งที่มาของการแจ้งเตือนได้ แสดงเมื่อกำหนดไว้เท่านั้น

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

พร็อพเพอร์ตี้ คำอธิบาย
kind ระบุว่าเป็นทรัพยากรกิจกรรม Value: สตริงคงที่ "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 ระบบจะลองใหม่ด้วย Exponential Backoff รหัสสถานะการคืนสินค้าอื่นๆ ทั้งหมดจะถือว่าเป็นข้อความล้มเหลว

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

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

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