نمونه کد برای رابط برنامه‌نویسی کاربردی (API) کانکتورها

برای اطلاعات بیشتر در مورد ویژگی‌های API به Connectors API مراجعه کنید.

تمام درخواست‌های این صفحه از متغیرهای زیر استفاده می‌کنند:

  • توکن $TOKEN - توکن OAuth 2.0
  • $CUSTOMER - شناسه مشتری یا به عبارت دیگر my_customer
  • $PAGE_TOKEN - توکن صفحه که از پاسخ‌های صفحه قبلی به دست آمده است
  • $CONNECTOR_CONFIG_ID - شناسه پیکربندی کانکتور. شناسه‌های تولید شده به شکل UUIDهای با حروف بزرگ هستند (برای مثال، 550E8400-E29B-41D4-A716-446655440000 ).

فهرست پیکربندی‌های کانکتور

برای فهرست کردن پیکربندی‌های کانکتور برای دامنه مشتری خود، از متد list استفاده کنید. می‌توانید به صورت اختیاری پارامترهای پرس‌وجوی page_size (یا pageSize ) و page_token (یا pageToken ) را هنگام صفحه‌بندی بین نتایج ارائه دهید:

  • page_size / pageSize : حداکثر تعداد پیکربندی‌های کانکتور برای برگرداندن. اندازه پیش‌فرض صفحه در صورت عدم تعیین، ۵۰ و حداکثر ۱۰۰ است.
  • page_token / pageToken : توکن صفحه‌ای که از فراخوانی list قبلی دریافت شده است.

درخواست

curl -X GET \
  -H "Authorization: Bearer $TOKEN" \
  "https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/connectorConfigs?page_size=50&page_token=$PAGE_TOKEN"

پاسخ

{
  "connectorConfigs": [
    {
      "name": "customers/my_customer/connectorConfigs/550E8400-E29B-41D4-A716-446655440000",
      "displayName": "Configuration 1",
      "type": "REPORTING",
      "details": {
        "googleSecOpsConfig": {
          "host": "example.googlesecops.com",
          "reportingSettings": {
            "enabledDefaultEvents": [
              "ALL_DEFAULT_EVENTS"
            ],
            "enabledOptInEvents": [
              "PASSWORD_BREACH_EVENT",
              "URL_NAVIGATION_EVENT"
            ],
            "enabledDeviceEvents": [
              "ALL_DEVICE_EVENTS"
            ]
          }
        }
      },
      "status": {
        "state": "ENABLED"
      }
    }
  ],
  "nextPageToken": "<next_page_token>"
}

دریافت پیکربندی کانکتور

برای بازیابی پیکربندی یک کانکتور خاص بر اساس شناسه (ID)، از متد get استفاده کنید.

درخواست

curl -X GET \
  -H "Authorization: Bearer $TOKEN" \
  "https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/connectorConfigs/$CONNECTOR_CONFIG_ID"

پاسخ

{
  "name": "customers/my_customer/connectorConfigs/550E8400-E29B-41D4-A716-446655440000",
  "displayName": "Configuration 1",
  "type": "REPORTING",
  "details": {
    "googleSecOpsConfig": {
      "host": "example.googlesecops.com",
      "reportingSettings": {
        "enabledDefaultEvents": [
          "ALL_DEFAULT_EVENTS"
        ],
        "enabledOptInEvents": [
          "PASSWORD_BREACH_EVENT",
          "URL_NAVIGATION_EVENT"
        ],
        "enabledDeviceEvents": [
          "ALL_DEVICE_EVENTS"
        ]
      }
    }
  },
  "status": {
    "state": "ENABLED"
  }
}

ایجاد پیکربندی کانکتور

برای ایجاد پیکربندی کانکتور جدید برای دامنه مشتری خود، از متد create استفاده کنید. می‌توانید به صورت اختیاری با تنظیم پارامتر کوئری connector_config_id (یا connectorConfigId ) یک شناسه سفارشی ارائه دهید. اگر شناسه‌ای ارائه نشود، یک UUID با حروف بزرگ توسط سرور ایجاد می‌شود.

درخواست

curl -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "displayName": "Configuration 1",
    "type": "REPORTING",
    "details": {
      "googleSecOpsConfig": {
        "apiKey": "api-key",
        "host": "example.googlesecops.com",
        "reportingSettings": {
          "enabledDefaultEvents": [
            "ALL_DEFAULT_EVENTS"
          ],
          "enabledOptInEvents": [
            "PASSWORD_BREACH_EVENT"
          ],
          "enabledDeviceEvents": [
            "ALL_DEVICE_EVENTS"
          ]
        }
      }
    }
  }' \
  "https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/connectorConfigs?connector_config_id=$CONNECTOR_CONFIG_ID"

پاسخ

{
  "name": "customers/my_customer/connectorConfigs/550E8400-E29B-41D4-A716-446655440000",
  "displayName": "Configuration 1",
  "type": "REPORTING",
  "details": {
    "googleSecOpsConfig": {
      "host": "example.googlesecops.com",
      "reportingSettings": {
        "enabledDefaultEvents": [
          "ALL_DEFAULT_EVENTS"
        ],
        "enabledOptInEvents": [
          "PASSWORD_BREACH_EVENT"
        ],
        "enabledDeviceEvents": [
          "ALL_DEVICE_EVENTS"
        ]
      }
    }
  },
  "status": {
    "state": "ENABLED"
  }
}

به‌روزرسانی پیکربندی کانکتور

پیکربندی کانکتور را می‌توان به یکی از روش‌های زیر به‌روزرسانی کرد:

  • بدون ماسک به‌روزرسانی : اگر هیچ پارامتر پرس‌وجوی updateMask ارائه نشود، تمام فیلدهای تنظیم‌شده در درخواست به‌روزرسانی می‌شوند.
  • با استفاده از ماسک به‌روزرسانی : اگر پارامتر کوئری updateMask مشخص شود، فقط فیلدهای فهرست‌شده در ماسک به‌روزرسانی خواهند شد.
  • با ماسک به‌روزرسانی متناظر با * : اگر updateMask روی * تنظیم شده باشد، به‌روزرسانی به عنوان یک جایگزین کامل (معادل create) در نظر گرفته می‌شود.

مثال ۱: به‌روزرسانی ماسک فقط با هدف قرار دادن displayName

در این گزینه، ارائه updateMask=displayName تضمین می‌کند که فقط displayName به‌روزرسانی می‌شود، حتی اگر فیلدهای اضافی در بدنه ارائه شوند.

درخواست

curl -X PATCH \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "displayName": "Updated name"
  }' \
  "https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/connectorConfigs/$CONNECTOR_CONFIG_ID?updateMask=displayName"

پاسخ

{
  "name": "customers/my_customer/connectorConfigs/550E8400-E29B-41D4-A716-446655440000",
  "displayName": "Updated name",
  "type": "REPORTING",
  "details": {
    "googleSecOpsConfig": {
      "host": "example.googlesecops.com",
      "reportingSettings": {
        "enabledDefaultEvents": [
          "BROWSER_EXTENSION_INSTALL_EVENT"
        ],
        "enabledOptInEvents": [
          "PASSWORD_BREACH_EVENT"
        ],
        "enabledDeviceEvents": [
          "LOGIN_LOGOUT_EVENT"
        ]
      }
    }
  },
  "status": {
    "state": "ENABLED"
  }
}

مثال ۲: بدون ماسک به‌روزرسانی (تمام فیلدهای درخواست را به‌روزرسانی می‌کند)

اگر updateMask از رشته‌ی کوئری درخواست حذف شود، تمام فیلدهای ارائه شده در JSON payload به‌روزرسانی می‌شوند.

درخواست

curl -X PATCH \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "displayName": "Updated again",
    "details": {
      "googleSecOpsConfig": {
        "reportingSettings": {
          "enabledDefaultEvents": [
            "BROWSER_EXTENSION_INSTALL_EVENT",
            "CONTENT_TRANSFER_EVENT",
            "CONTENT_UNSCANNED_EVENT",
            "DATA_ACCESS_CONTROL_EVENT",
            "MALWARE_TRANSFER_EVENT"
          ]
        }
      }
    }
  }' \
  "https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/connectorConfigs/$CONNECTOR_CONFIG_ID"

پاسخ

{
  "name": "customers/my_customer/connectorConfigs/550E8400-E29B-41D4-A716-446655440000",
  "displayName": "Updated again",
  "type": "REPORTING",
  "details": {
    "googleSecOpsConfig": {
      "host": "example.googlesecops.com",
      "reportingSettings": {
        "enabledDefaultEvents": [
          "BROWSER_EXTENSION_INSTALL_EVENT",
          "CONTENT_TRANSFER_EVENT",
          "CONTENT_UNSCANNED_EVENT",
          "DATA_ACCESS_CONTROL_EVENT",
          "MALWARE_TRANSFER_EVENT"
        ],
        "enabledOptInEvents": [
          "PASSWORD_BREACH_EVENT"
        ],
        "enabledDeviceEvents": [
          "ALL_DEVICE_EVENTS"
        ]
      }
    }
  },
  "status": {
    "state": "ENABLED"
  }
}

مثال ۳: به‌روزرسانی ماسک * (جایگزینی کامل)

تنظیم updateMask=* پیکربندی موجود را به طور کامل با payload ارائه شده در بدنه درخواست جایگزین می‌کند.

درخواست

curl -X PATCH \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "displayName": "New Updated Display Name",
    "type": "REPORTING",
    "details": {
      "googleSecOpsConfig": {
        "apiKey": "api-key",
        "host": "example.googlesecops.com",
        "reportingSettings": {
          "enabledOptInEvents": [
            "PASSWORD_BREACH_EVENT"
          ]
        }
      }
    }
  }' \
  "https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/connectorConfigs/$CONNECTOR_CONFIG_ID?updateMask=*"

پاسخ

{
  "name": "customers/my_customer/connectorConfigs/550E8400-E29B-41D4-A716-446655440000",
  "displayName": "New Updated Display Name",
  "type": "REPORTING",
  "details": {
    "googleSecOpsConfig": {
      "host": "example.googlesecops.com",
      "reportingSettings": {
        "enabledOptInEvents": [
          "PASSWORD_BREACH_EVENT"
        ]
      }
    }
  },
  "status": {
    "state": "ENABLED"
  }
}

حذف پیکربندی کانکتور

برای حذف پیکربندی یک کانکتور، از متد delete استفاده کنید.

درخواست

curl -X DELETE \
  -H "Authorization: Bearer $TOKEN" \
  "https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/connectorConfigs/$CONNECTOR_CONFIG_ID"

پاسخ

{}