แก้ไขข้อผิดพลาดและเปิดใช้งานการสมัครใช้บริการ Google Workspace อีกครั้ง

หน้านี้อธิบายวิธีเปิดใช้งานการสมัครใช้บริการ Google Workspace ที่ถูกระงับอีกครั้ง โดยการแก้ไขหรือแก้ปัญหาข้อผิดพลาดและเรียกใช้เมธอด subscriptions.reactivate

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

คุณดูข้อมูลเกี่ยวกับการสมัครใช้บริการที่ถูกระงับได้ด้วยวิธีต่อไปนี้

  • แอปของคุณได้รับเหตุการณ์วงจร เกี่ยวกับการระงับ หากการสมัครใช้บริการถูกระงับเนื่องจากข้อผิดพลาดเกี่ยวกับ ปลายทาง คุณอาจไม่ได้รับเหตุการณ์วงจร
  • คุณใช้เมธอด subscriptions.get หรือ subscriptions.list เพื่อดูว่าฟิลด์ state ของการสมัครใช้บริการตั้งค่าเป็น SUSPENDED หรือไม่
  • คุณจะได้รับการแจ้งเตือนเกี่ยวกับการนำส่งไปยังปลายทางการแจ้งเตือนไม่สำเร็จ ดูข้อมูลเกี่ยวกับการตรวจสอบการนำส่งที่ไม่สำเร็จไปยังหัวข้อ Google Cloud Pub/Sub ได้ที่จัดการข้อความ ที่ไม่สำเร็จ

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

Apps Script

  • โปรเจ็กต์ Apps Script
    • ใช้โปรเจ็กต์ Google Cloud แทนโปรเจ็กต์เริ่มต้นที่ Apps Script สร้างขึ้นโดยอัตโนมัติ
    • สำหรับขอบเขตทั้งหมดที่คุณเพิ่มเพื่อกำหนดค่าหน้าจอขอความยินยอม OAuth คุณต้องเพิ่มขอบเขตลงในไฟล์ appsscript.json ในโปรเจ็กต์ Apps Script ด้วย เช่น หากคุณระบุขอบเขต chat.messages ให้เพิ่มสิ่งต่อไปนี้
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • เปิดใช้ Google Workspace Eventsบริการขั้นสูง

Python

  • Python 3.6 ขึ้นไป
  • เครื่องมือจัดการแพ็กเกจ pip
  • ไลบรารีของไคลเอ็นต์ Google ล่าสุดสำหรับ Python หากต้องการติดตั้งหรืออัปเดต ให้เรียกใช้คำสั่งต่อไปนี้ ในอินเทอร์เฟซบรรทัดคำสั่ง
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      

ระบุและแก้ไขข้อผิดพลาด

หากต้องการระบุข้อผิดพลาดสำหรับการสมัครใช้บริการ ให้ตรวจสอบฟิลด์ suspensionReason ของการสมัครใช้บริการ คุณจะเห็นฟิลด์นี้เมื่อได้รับเหตุการณ์วงจร เกี่ยวกับ การระงับ หรือโดยใช้วิธี subscriptions.get เพื่อตรวจสอบฟิลด์ทั้งหมดสำหรับการสมัครใช้บริการ

ตารางต่อไปนี้แสดงข้อผิดพลาดที่เป็นไปได้สำหรับการสมัครใช้บริการ และวิธีแก้ไขข้อผิดพลาด (หากเป็นไปได้) หากแก้ไขข้อผิดพลาดไม่ได้ คุณสามารถลบการสมัครใช้บริการหรือรอให้หมดอายุได้ Google Workspace Events API จะลบการสมัครใช้บริการที่หมดอายุโดยอัตโนมัติ

ข้อผิดพลาด คำอธิบาย วิธีแก้ไข

USER_SCOPE_REVOKED

ผู้ใช้ที่ให้สิทธิ์ได้เพิกถอนการให้สิทธิ์ขอบเขต OAuth อย่างน้อย 1 ขอบเขตที่จำเป็นสำหรับการสมัครใช้บริการ รับโทเค็นเพื่อการเข้าถึงอื่น โปรดดูรายละเอียดที่หัวข้อ รับโทเค็นเพื่อการเข้าถึงจาก เซิร์ฟเวอร์การให้สิทธิ์ของ Google

RESOURCE_DELETED

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

USER_AUTHORIZATION_FAILURE

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

ENDPOINT_PERMISSION_DENIED

แอปพลิเคชัน Google Workspace ไม่มีสิทธิ์เข้าถึงเพื่อส่ง เหตุการณ์ไปยังปลายทางการแจ้งเตือน ให้สิทธิ์เข้าถึงบัญชีบริการสำหรับแอปพลิเคชัน Google Workspace ที่ส่งมอบเหตุการณ์

บัญชีบริการ:
  • กิจกรรมใน Google Chat: chat-api-push@system.gserviceaccount.com
  • กิจกรรมใน Google ไดรฟ์: drive-api-event-push@system.gserviceaccount.com
  • กิจกรรม Google Meet: meet-api-event-push@system.gserviceaccount.com

สำหรับหัวข้อ Pub/Sub ให้มอบบทบาทผู้เผยแพร่ Pub/Sub (roles/pubsub.publisher) ให้บัญชีบริการ

ENDPOINT_NOT_FOUND

ไม่มีหรือหาปลายทางการแจ้งเตือนไม่พบ ตรวจสอบว่าปลายทางยังใช้งานได้อยู่ หากต้องการแก้ปัญหาเกี่ยวกับหัวข้อ Pub/Sub โปรดดูเอกสารประกอบการแก้ปัญหา

ENDPOINT_RESOURCE_EXHAUSTED

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

APP_SCOPE_REVOKED

ผู้ดูแลระบบโดเมนได้เพิกถอนการให้สิทธิ์ขอบเขต OAuth อย่างน้อย 1 รายการสำหรับแอป Chat รับการอนุมัติจากผู้ดูแลระบบ

APP_AUTHORIZATION_FAILURE

แอปใน Chat ที่ให้สิทธิ์ในการสร้างการสมัครใช้บริการไม่มี สิทธิ์เข้าถึงทรัพยากรเป้าหมายของการสมัครใช้บริการอีกต่อไป รับสิทธิ์เข้าถึงทรัพยากรเป้าหมายอีกครั้ง ตัวอย่างเช่น หากทรัพยากรเป้าหมายเป็นพื้นที่ใน Chat แอป Chat อาจต้องมีสิทธิ์เป็นสมาชิกในพื้นที่ดังกล่าว

เปิดใช้งานการสมัครใช้บริการอีกครั้ง

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

วิธีเปิดใช้งานการสมัครใช้บริการ Google Workspace อีกครั้ง

Apps Script

  1. ในโปรเจ็กต์ Apps Script ให้สร้างไฟล์สคริปต์ใหม่ ชื่อ reactivateSubscription แล้วเพิ่มโค้ดต่อไปนี้

    function reactivateSubscription() {
      // The name of the subscription to reactivate.
      const name = 'subscriptions/SUBSCRIPTION_ID';
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.reactivate({}, name);
      console.log(response);
    }
    

    แทนที่ค่าต่อไปนี้

    • SUBSCRIPTION_ID: รหัสของการสมัครใช้บริการ หากต้องการรับรหัส คุณสามารถใช้ตัวเลือกต่อไปนี้
      • ค่าของฟิลด์ uid
      • รหัสของชื่อทรัพยากรที่แสดงในฟิลด์ name เช่น หากชื่อทรัพยากรคือ subscriptions/subscription-123 ให้ใช้ subscription-123
  2. หากต้องการเปิดใช้งานการสมัครใช้บริการ Google Workspace อีกครั้ง ให้เรียกใช้ฟังก์ชัน reactivateSubscription ในโปรเจ็กต์ Apps Script

Python

  1. สร้างไฟล์ชื่อ reactivate_subscription.py ในไดเรกทอรีการทำงาน แล้วเพิ่มโค้ดต่อไปนี้

    """Reactivate subscription."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = [SCOPES]
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    NAME = 'subscriptions/SUBSCRIPTION_ID'
    response = service.subscriptions().reactivate(name=NAME).execute()
    print(response)
    

    แทนที่ค่าต่อไปนี้

    • SCOPES: ขอบเขต OAuth อย่างน้อย 1 รายการที่รองรับเหตุการณ์แต่ละประเภท สำหรับการสมัครใช้บริการ จัดรูปแบบเป็นอาร์เรย์ของสตริง หากต้องการแสดงขอบเขตหลายรายการ ให้คั่นด้วยคอมมา เช่น 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
    • SUBSCRIPTION_ID: รหัสของการสมัครใช้บริการ หากต้องการรับรหัส คุณสามารถใช้ตัวเลือกต่อไปนี้
      • ค่าของฟิลด์ uid
      • รหัสของชื่อทรัพยากรที่แสดงในฟิลด์ name เช่น หากชื่อทรัพยากรคือ subscriptions/subscription-123 ให้ใช้ subscription-123
  2. ตรวจสอบว่าคุณได้จัดเก็บข้อมูลเข้าสู่ระบบรหัสไคลเอ็นต์ OAuth และตั้งชื่อไฟล์เป็น credentials.json ในไดเรกทอรีการทำงาน ตัวอย่างโค้ดใช้ไฟล์ JSON นี้เพื่อตรวจสอบสิทธิ์กับ Google Workspace และรับข้อมูลเข้าสู่ระบบของผู้ใช้ โปรดดูวิธีการที่หัวข้อสร้างข้อมูลเข้าสู่ระบบ รหัสไคลเอ็นต์ OAuth

  3. หากต้องการเปิดใช้งานการสมัครใช้บริการ Google Workspace อีกครั้ง ให้เรียกใช้คำสั่งต่อไปนี้ ในเทอร์มินัล

    python3 reactivate_subscription.py
Google Workspace Events API จะแสดงการดำเนินการที่ใช้เวลานานซึ่งมีอินสแตนซ์ของทรัพยากร Subscription

หากคำขอไม่สำเร็จ โปรดดูส่วนต่อไปนี้เพื่อแก้ปัญหาข้อผิดพลาดเพิ่มเติม

เปิดใช้งานการสมัครใช้บริการอีกครั้งในฐานะแอป Google Chat

คุณสามารถเปิดใช้งานการสมัครรับข้อมูลเหตุการณ์ใน Chat อีกครั้งในฐานะแอป Chat แทนที่จะเป็นผู้ใช้ กระบวนการจะคล้ายกัน ยกเว้น

  1. แทนที่จะตรวจสอบสิทธิ์ผู้ใช้ ให้ตรวจสอบสิทธิ์ในฐานะแอป Chat ด้วยการอนุมัติของผู้ดูแลระบบแบบครั้งเดียว

  2. ระบุขอบเขตการให้สิทธิ์ที่อนุญาตให้แอปใน Chat สมัครรับข้อมูลเหตุการณ์ใน Chat ขอบเขตการให้สิทธิ์เหล่านี้จะเริ่มต้นด้วย chat.app เสมอ และ รวมถึงรายการต่อไปนี้

    • https://www.googleapis.com/auth/chat.app.memberships: ติดตามกิจกรรมของสมาชิกในพื้นที่ใน Chat
    • https://www.googleapis.com/auth/chat.app.messages.readonly: ติดตามข้อความในพื้นที่ทำงานของ Chat และกิจกรรมรีแอ็กชัน
    • https://www.googleapis.com/auth/chat.app.spaces: ติดตามกิจกรรมในพื้นที่ Chat

สร้างคีย์ API

หากต้องการเรียกเมธอด API ของรุ่นตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ คุณต้องใช้เอกสารการค้นพบ API เวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ที่ไม่ใช่แบบสาธารณะ หากต้องการตรวจสอบสิทธิ์คำขอ คุณต้องส่งคีย์ API

หากต้องการสร้างคีย์ API ให้เปิดโปรเจ็กต์ Google Cloud ของแอป แล้วทำดังนี้

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > API และบริการ > ข้อมูลเข้าสู่ระบบ

    ไปที่ข้อมูลเข้าสู่ระบบ

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

เขียนสคริปต์ที่เรียก Google Workspace Events API

ตัวอย่างโค้ดต่อไปนี้จะเปิดใช้งานการสมัครใช้บริการ Google Workspace ของแอป Chat อีกครั้ง

Python

  """Reactivate subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = [SCOPES]

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # Call the Workspace Events API using the service endpoint.
  service = build(
      'workspaceevents',
      'v1beta',
      credentials=CREDENTIALS,
      discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
  )

  NAME = 'subscriptions/SUBSCRIPTION_ID'
  response = service.subscriptions().reactivate(name=NAME).execute()
  print(response)

แทนที่ค่าต่อไปนี้

  • SCOPES: ระบุขอบเขตการให้สิทธิ์ที่อนุญาตให้แอป ใน Chat ติดตามกิจกรรมใน Chat ขอบเขตการให้สิทธิ์เหล่านี้จะเริ่มต้นด้วย chat.app เสมอ และ รวมถึงรายการต่อไปนี้

    • https://www.googleapis.com/auth/chat.app.memberships: ติดตามกิจกรรมของสมาชิกในพื้นที่ใน Chat
    • https://www.googleapis.com/auth/chat.app.messages.readonly: ติดตามข้อความในพื้นที่ทำงานของ Chat และกิจกรรมรีแอ็กชัน
    • https://www.googleapis.com/auth/chat.app.spaces: ติดตามกิจกรรมในพื้นที่ Chat
  • API_KEY: คีย์ API ที่คุณสร้างขึ้นเพื่อสร้าง ปลายทางของบริการสำหรับ Google Workspace Events API

  • SUBSCRIPTION_ID: รหัสของการสมัครใช้บริการ หากต้องการรับรหัส คุณสามารถใช้สิ่งต่อไปนี้

    • ค่าของฟิลด์ uid
    • รหัสของชื่อทรัพยากรที่แสดงในฟิลด์ name เช่น หากชื่อทรัพยากรคือ subscriptions/subscription-123 ให้ใช้ subscription-123

แก้ปัญหาข้อผิดพลาดหลายรายการ

หากคุณแก้ไขข้อผิดพลาดที่ระงับการสมัครใช้บริการแล้วและreactivateวิธีล้มเหลว อาจเกิดข้อผิดพลาดอีกหลังจากที่ระบบระงับการสมัครใช้บริการ

หากต้องการระบุข้อผิดพลาดเพิ่มเติม ให้ตรวจสอบเอาต์พุตจากคำขอที่ไม่สำเร็จ เอาต์พุตมีข้อผิดพลาดที่ยังคงอยู่

เมื่อการสมัครใช้บริการมีข้อผิดพลาดหลายรายการ ค่าของช่อง suspensionReason จะใช้ข้อผิดพลาดเดิมที่ระงับการสมัครใช้บริการเสมอ