حل الأخطاء

تعرض واجهة برمجة التطبيقات Google Drive مستويين من معلومات الخطأ:

  • رموز خطأ HTTP ورسائل العناوين.
  • كائن JSON في نص الاستجابة مع تفاصيل إضافية يمكن أن تساعدك في تحديد كيفية التعامل مع الخطأ.

يجب أن ترصد تطبيقات Google Drive جميع الأخطاء التي قد تحدث عند استخدام واجهة برمجة التطبيقات REST API وتعالجها. يوفّر هذا الدليل تعليمات حول كيفية حلّ أخطاء محدّدة في Drive API.

ملخّص رموز حالة HTTP

رمز الخطأ الوصف
200 - OK تم إكمال الطلب بنجاح (هذا هو الردّ العادي لطلبات HTTP الناجحة).
400 - Bad Request لا يمكن تنفيذ الطلب بسبب خطأ في البرنامج.
401 - Unauthorized يحتوي الطلب على بيانات اعتماد غير صالحة.
403 - Forbidden تم استلام الطلب وتفهُّمه، ولكن ليس لدى المستخدم الإذن بتنفيذه.
404 - Not Found تعذّر العثور على الصفحة المطلوبة.
429 - Too Many Requests تلقّت واجهة برمجة التطبيقات عددًا كبيرًا جدًا من الطلبات.
500, 502, 503, 504 - Server Errors يحدث خطأ غير متوقّع أثناء معالجة الطلب.

أخطاء 400

تشير هذه الأخطاء إلى أنّ الطلب غير مقبول، غالبًا بسبب عدم توفّر معلمة مطلوبة.

badRequest

يمكن أن يحدث هذا الخطأ بسبب أيٍّ من المشاكل التالية في الرمز البرمجي:

  • لم يتم توفير حقل مطلوب أو معلمة مطلوبة.
  • القيمة المقدَّمة أو مجموعة الحقول المقدَّمة غير صالحة.
  • حاولت إضافة حساب مستخدم متوفّر مكرّرًا إلى ملف على Drive.
  • لقد حاولت إضافة عنصر رئيسي من شأنه إنشاء دورة في الرسم البياني للدليل.

يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "code": 400,
    "errors": [
      {
        "domain": "global",
        "location": "orderBy",
        "locationType": "parameter",
        "message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order.",
        "reason": "badRequest"
      }
    ],
    "message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order."
  }
}

لإصلاح هذا الخطأ، تحقَّق من حقل message وعدِّل الرمز وفقًا لذلك.

invalidSharingRequest

يحدث هذا الخطأ لعدة أسباب. لتحديد السبب، قيِّم حقل reason في ملف JSON الذي تم إرجاعه. يحدث هذا الخطأ في أغلب الأحيان للأسباب التالية:

  • نجحت المشاركة، ولكن لم يتم تسليم إشعار البريد الإلكتروني بشكل صحيح.
  • غير مسموح بتغيير قائمة التحكم بالوصول (ACL) لهذا المستخدم.

يشير الحقل message إلى الخطأ الفعلي.

تمت المشاركة بنجاح، ولكن لم يتم تسليم الرسالة الإلكترونية للإشعار بشكل صحيح

يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "invalidSharingRequest",
        "message": "Bad Request. User message: \"Sorry, the items were successfully shared but emails could not be sent to email@domain.com.\""
      }
    ],
    "code": 400,
    "message": "Bad Request"
  }
}

لحلّ هذا الخطأ، أطلِع المستخدم (المشارِك) على أنّه تعذّر عليه المشاركة لأنّه تعذّر إرسال الرسالة الإلكترونية للإشعار إلى عنوان البريد الإلكتروني المقصود. على العميل التأكّد من أنّه يملك عنوان البريد الإلكتروني الصحيح وأنّه يمكنه تلقّي الرسائل الإلكترونية.

غير مسموح بتغيير ACL لهذا المستخدم

يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "invalidSharingRequest",
        "message": "Bad Request. User message: \"ACL change not allowed.\""
      }
    ],
    "code": 400,
    "message": "Bad Request"
  }
}

لحلّ هذا الخطأ، تحقَّق من إعدادات المشاركة لنطاق Google Workspace الذي ينتمي إليه الملف. قد تحظر الإعدادات المشاركة خارج النطاق أو قد لا يُسمح بمشاركة مساحة تخزين سحابي مشتركة.

أخطاء 401

تعني هذه الأخطاء أنّ الطلب لا يحتوي على رمز مميّز صالح للوصول.

authError

يحدث هذا الخطأ عندما يكون رمز المرور الذي تستخدمه إما منتهي الصلاحية أو غير صالح. يمكن أن يرجع سبب هذا الخطأ أيضًا إلى عدم توفّر تفويض للنطاقات المطلوبة. يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "authError",
        "message": "Invalid Credentials",
        "locationType": "header",
        "location": "Authorization",
      }
    ],
    "code": 401,
    "message": "Invalid Credentials"
  }
}

لحلّ هذا الخطأ، أعِد تحميل رمز المرور باستخدام رمز المرور لإعادة التحميل صالحة لمدة طويلة. إذا تعذّر ذلك، وجِّه المستخدم إلى مسار OAuth كما هو موضّح في مقالة اختيار نطاقات Google Drive API.

fileNotDownloadable

يحدث هذا الخطأ عند محاولة استخدام الطريقة revisions.get مع مَعلمة عنوان URL alt=media في مستند Google Workspace. يمثّل ملف JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "fileNotDownloadable",
        "message": "Only files with binary content can be downloaded. Use Export with Docs Editors files."
      }
    ],
    "code": 403,
    "message": "Only files with binary content can be downloaded. Use Export with Docs Editors files."
  }
}

لإصلاح هذا الخطأ، جرِّب أيًا مما يلي:

  • أزِل مَعلمة عنوان URL alt=media إذا كنت تريد عرض البيانات الوصفية لمحاولة تعديل معيّنة، مثل mimetype.
  • استخدِم الطريقة files.export لتصدير محتوى ملف Google Workspace المكوّن من وحدات برمجية. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تصدير محتوى مستند Google Workspace.

أخطاء 403

تعني هذه الأخطاء أنّه تم تجاوز حدّ الاستخدام أو أنّ المستخدم ليس لديه الإمتيازات الصحيحة. لتحديد السبب، قيِّم الحقل reason لملف JSON الذي تم عرضه.

للحصول على معلومات عن حدود Drive API، يُرجى الاطّلاع على الحدود القصوى للاستخدام. للحصول على معلومات عن حدود مجلدات Drive، راجِع حدود الملفات والمجلدات.

activeItemCreationLimitExceeded

يحدث الخطأ activeItemCreationLimitExceeded عند تجاوز الحد الأقصى لعدد العناصر التي تم إنشاؤها لكل حساب. يمكن أن يمتلك كل مستخدم ما يصل إلى 500 مليون عنصر أنشأه حساب معيّن. لمزيد من المعلومات، يُرجى الاطّلاع على حدود العناصر لكل مستخدم.

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "activeItemCreationLimitExceeded",
    "message": "This account has exceeded the creation limit of 500 million items. To create more items, permanently delete some items."
   }
  ],
  "code": 403,
  "message": "This account has exceeded the creation limit of 500 million items. To create more items, permanently delete some items."
 }
}

لإصلاح هذا الخطأ:

  1. أطلِع المستخدم على أنّ Drive يمنع الحسابات من إنشاء أكثر من 500 مليون عنصر.

  2. إذا كان على المستخدم إنشاء عناصر في هذا الحساب نفسه، اطلب منه حذف بعض العناصر نهائيًا. بخلاف ذلك، يمكنهم استخدام حساب مختلف يستوفي المتطلبات.

appNotAuthorizedToFile

يحدث هذا الخطأ عندما لا يكون تطبيقك مُدرَجًا في قائمة "الوصول إلى الملفات" للملف. يمنع هذا الخطأ المستخدم من فتح الملف باستخدام تطبيقك. يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "appNotAuthorizedToFile",
        "message": "The user has not granted the app {appId} {verb} access to the file {fileId}."
      }
    ],
    "code": 403,
    "message": "The user has not granted the app {appId} {verb} access to the file {fileId}."
  }
}

لإصلاح هذا الخطأ، يمكنك تجربة أيّ مما يلي:

cannotModifyInheritedTeamDrivePermission

يحدث هذا الخطأ عندما يحاول مستخدم تعديل الأذونات المكتسَبة لملف أو ملف تعريف شخصي أو ملف شخصي مجاني أو ملف تجاري ضمن مساحة تخزين سحابي مشتركة. لا يمكن إزالة الأذونات المكتسَبة من عنصر في مساحة تخزين سحابي مشتركة. يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "cannotModifyInheritedTeamDrivePermission",
        "message": "Cannot update or delete an inherited permission on a shared drive item."
      }
    ],
    "code": 403,
    "message": "Cannot update or delete an inherited permission on a shared drive item."
  }
}

لحلّ هذا الخطأ، على المستخدم تعديل الأذونات في العنصر الوالد المباشر أو غير المباشر الذي تم اكتساب الأذونات منه. لمزيد من المعلومات، يُرجى الاطّلاع على نشر الأذونات. يمكنك أيضًا استرداد مورد permissions.permissionDetails لمعرفة ما إذا كانت الأذونات على عنصر مساحة التخزين السحابي المشتركة هذا قد تم اكتسابها أو تطبيقها مباشرةً.

dailyLimitExceeded

يحدث هذا الخطأ عند بلوغ الحد الأقصى لواجهة برمجة التطبيقات لمشروعك. يوضّح نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "usageLimits",
        "reason": "dailyLimitExceeded",
        "message": "Daily Limit Exceeded"
      }
    ],
    "code": 403,
    "message": "Daily Limit Exceeded"
  }
}

يظهر هذا الخطأ عندما يضبط مالك التطبيق حدًّا للحصة المحدّدة للحدّ من استخدام مورد معيّن. لإصلاح هذا الخطأ، عليك إزالة أي حدود استخدام قصوى للحصة النسبية "طلبات البحث في اليوم".

domainPolicy

يحدث هذا الخطأ عندما لا تسمح سياسة نطاق المستخدم بالوصول إلى Drive من تطبيقك. يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "domainPolicy",
        "message": "The domain administrators have disabled Drive apps."
      }
    ],
    "code": 403,
    "message": "The domain administrators have disabled Drive apps."
  }
}

لإصلاح هذا الخطأ:

  1. أطلِع المستخدم على أنّ النطاق لا يسمح لتطبيقك بالوصول إلى الملفات في Drive.
  2. يُرجى توجيه المستخدم إلى التواصل مع مشرف النطاق لطلب إذن الوصول إلى تطبيقك.

fileOwnerNotMemberOfTeamDrive

يحدث هذا الخطأ عند محاولة نقل ملف إلى مساحة تخزين سحابي مشتركة و مالك الملف ليس عضوًا فيها. يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "fileOwnerNotMemberOfTeamDrive",
        "message": "Cannot move a file into a shared drive as a writer when the owner of the file is not a member of that shared drive."
      }
    ],
    "code": 403,
    "message": "Cannot move a file into a shared drive as a writer when the owner of the file is not a member of that shared drive."
  }
}

لإصلاح هذا الخطأ:

  1. أضِف المستخدم إلى مساحة التخزين السحابي المشتركة باستخدام role=owner. للحصول على مزيد من المعلومات، يُرجى الاطّلاع على مشاركة الملفات والمجلدات ومحركات الأقراص.

  2. أضِف الملف إلى مساحة التخزين السحابي المشتركة. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء المجلدات وملؤها.

fileWriterTeamDriveMoveInDisabled

يحدث هذا الخطأ عندما لا يسمح مشرف النطاق للمستخدمين الذين لديهم role=writer بنقل عناصر إلى مساحة تخزين سحابي مشتركة. لا يملك المستخدم الذي يحاول نقل العناصر أذونات أقل من المسموح به في مساحة التخزين السحابي المشترَكة الوجهة. يمثّل المثال التالي على ملف JSON هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "fileWriterTeamDriveMoveInDisabled",
        "message": "The domain administrator has not allowed writers to move items into a shared drive."
      }
    ],
    "code": 403,
    "message": "The domain administrator has not allowed writers to move items into a shared drive."
  }
}

لحلّ هذا الخطأ، استخدِم حساب المستخدم المشرف نفسه في كلٍّ من مساحتَي التخزين السحابي المشترَكتَين المصدر والوجهة.

insufficientFilePermissions

يحدث هذا الخطأ عندما لا يملك المستخدم إذن الوصول للكتابة في ملف، ويحاول تطبيقك تعديل الملف. نموذج JSON التالي هو تمثيل لهذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "insufficientFilePermissions",
        "message": "The user does not have sufficient permissions for file {fileId}."
      }
    ],
    "code": 403,
    "message": "The user does not have sufficient permissions for file {fileId}."
  }
}

لحلّ هذا الخطأ، يُرجى توجيه المستخدم إلى التواصل مع مالك الملف وطلب إذن الوصول للتعديل. يمكنك أيضًا التحقّق من مستويات وصول المستخدمين في البيانات الوصفية التي يتم استرجاعها باستخدام files.get وعرض واجهة مستخدم قراءة فقط في حال عدم توفّر الأذونات.

myDriveHierarchyDepthLimitExceeded

يحدث الخطأ myDriveHierarchyDepthLimitExceeded عند تجاوز الحد الأقصى ل عدد مستويات المجلدات المتداخلة. لا يمكن أن يحتوي قسم "ملفاتي" لدى المستخدم على أكثر من 100 مستوى من المجلدات المُدمجة. للحصول على مزيد من المعلومات، اطّلِع على حدود عمق المجلد.

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "myDriveHierarchyDepthLimitExceeded",
    "message": "Your My Drive can't contain more than 100 levels of folders. For details, see https://developers.google.com/drive/api/guides/handle-errors#nested-folder-levels."
   }
  ],
  "code": 403,
  "message": "Your My Drive can't contain more than 100 levels of folders. For details, see https://developers.google.com/drive/api/guides/handle-errors#nested-folder-levels."
 }
}

لإصلاح هذا الخطأ:

  1. أطلِع المستخدم على أنّ Drive يمنع وضع المجلدات على عمق أكثر من 100 مستوى.
  2. إذا كان على المستخدم إنشاء مجلد متداخل آخر، اطلب منه إعادة تنظيم المجلد الرئيسي المقصود بحيث يكون عدد مستوياته أقل من 100 مستوى أو استخدام مجلد رئيسي مختلف يستوفي المتطلبات.

numChildrenInNonRootLimitExceeded

يحدث هذا الخطأ عندما يتم تجاوز الحدّ الأقصى لعدد العناصر الثانوية في مجلد (المجلدات والملفات والاختصارات). هناك 500,000 عنصر كحد أقصى للمجلدات والملفات والاختصارات في المجلد مباشرةً. لا يتم احتساب العناصر المضمّنة في المجلدات الفرعية ضمن الحد الأقصى المسموح به لعدد العناصر البالغ 500,000 عنصر. لمزيد من المعلومات عن حدود مجلدات Drive، يمكنك الاطّلاع على حدود المجلدات في Google Drive.

يمثّل نموذج JSON التالي هذا الخطأ:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "numChildrenInNonRootLimitExceeded",
    "message": "The limit for this folder's number of children (files and folders) has been exceeded."
   }
  ],
  "code": 403,
  "message": "The limit for this folder's number of children (files and folders) has been exceeded."
 }
}

لإصلاح هذا الخطأ، جرِّب أيًا مما يلي:

  • أطلِع المستخدم على أنّ Drive يمنع المجلدات التي تحتوي على أكثر من 500,000 عنصر.
  • إذا كان على المستخدم إضافة المزيد من العناصر إلى المجلد الكامل، اطلب منه إعادة تنظيم المجلد ليحتوي على أقل من 500,000 عنصر أو استخدام مجلد مشابه يحتوي على عدد أقل من العناصر.

rateLimitExceeded

يحدث هذا الخطأ عند بلوغ الحد الأقصى لمعدل تكرار المحتوى في المشروع. ويختلف هذا الحدّ القصوى تبعًا لنوع الطلب. نموذج JSON التالي هو تمثيل لهذا الخطأ:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "message": "Rate Limit Exceeded",
    "reason": "rateLimitExceeded",
   }
  ],
  "code": 403,
  "message": "Rate Limit Exceeded"
 }
}

لإصلاح هذا الخطأ، جرِّب أيًا مما يلي:

sharingRateLimitExceeded

يحدث هذا الخطأ عندما يصل المستخدم إلى حدّ أقصى للمشاركة، وغالبًا ما يكون مرتبطًا بحدّ أقصى للبريد الإلكتروني. يمثل نموذج JSON التالي هذا الخطأ:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "message": "Rate limit exceeded. User message: \"These item(s) could not be shared because a rate limit was exceeded: filename",
    "reason": "sharingRateLimitExceeded",
   }
  ],
  "code": 403,
  "message": "Rate Limit Exceeded"
 }
}

لإصلاح هذا الخطأ:

  1. لا ترسل رسائل إلكترونية عند مشاركة أعداد كبيرة من الملفات.
  2. إذا كان مستخدم واحد يقدّم طلبات عديدة نيابةً عن العديد من مستخدمي حساب Google Workspace، ننصحك باستخدام حساب خدمة لديه تفويض على مستوى النطاق باستخدام المَعلمة quotaUser.

storageQuotaExceeded

يحدث هذا الخطأ عندما يصل المستخدم إلى الحد الأقصى لمساحة التخزين. يوضّح نموذج JSON التالي هذا الخطأ:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "message": "The user's Drive storage quota has been exceeded.",
    "reason": "storageQuotaExceeded",
   }
  ],
  "code": 403,
  "message": "The user's Drive storage quota has been exceeded."
 }
}

لإصلاح هذا الخطأ:

  1. راجِع الحدود القصوى المسموح بها لمساحة التخزين في حسابك على Drive. لمزيد من المعلومات، يُرجى الاطّلاع على حدود مساحة التخزين والتحميل في Google Workspace.

  2. إدارة الملفات في مساحة تخزين Google Drive

  3. شراء مساحة تخزين إضافية على Google

teamDriveFileLimitExceeded

يحدث هذا الخطأ عندما يحاول أحد المستخدمين تجاوز الحدّ الأقصى الصارم للعناصر في ملف شخصي على محرك أقراص مشترَك. يبلغ الحد الأقصى لإجمالي عدد عناصر كل مجلد في مساحة التخزين السحابي المشتركة الخاصة بالمستخدم 500,000 عنصر، بما في ذلك الملفات والمجلدات والاختصارات. ويستند هذا الحد إلى عدد العناصر، وليس استخدام مساحة التخزين. لمزيد من المعلومات، يُرجى الاطّلاع على الحدود القصوى المسموح بها على مساحات التخزين السحابي المشتركة في Google Drive.

يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "teamDriveFileLimitExceeded",
        "message": "The file limit for this shared drive has been exceeded."
      }
    ],
    "code": 403,
    "message": "The file limit for this shared drive has been exceeded."
  }
}

لإصلاح هذا الخطأ، عليك تقليل عدد العناصر في مساحة التخزين السحابي المشتركة. قد يكون من الصعب تنظيم مساحات Drive المشتركة التي تحتوي على عدد كبير جدًا من الملفات والبحث عنها.

teamDriveHierarchyTooDeep

يحدث الخطأ teamDriveHierarchyTooDeep عند تجاوز الحد الأقصى لعدد مستويات المجلدات المُدمجة في "مساحة التخزين السحابي المشترَكة". لا يمكن أن تحتوي مساحة Drive المشتركة للمستخدم على أكثر من 100 مستوى من المجلدات المتداخلة. لمزيد من المعلومات، يُرجى الاطّلاع على الحد الأقصى لعمق المجلدات.

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "teamDriveHierarchyTooDeep",
    "message": "The shared drive hierarchy depth will exceed the limit."
   }
  ],
  "code": 403,
  "message": "The shared drive hierarchy depth will exceed the limit."
 }
}

لإصلاح هذا الخطأ:

  1. أطلِع المستخدم على أنّ مساحات التخزين السحابي المشتركة تمنع وضع المجلدات على عمق أكثر من 100 مستوى.
  2. إذا كان على المستخدم إنشاء مجلد متداخل آخر، اطلب منه إعادة تنظيم المجلد الرئيسي المقصود بحيث يكون عدد مستوياته أقل من 100 مستوى أو استخدام مجلد رئيسي مختلف يستوفي المتطلبات.

teamDriveMembershipRequired

يحدث هذا الخطأ عندما يحاول مستخدم الوصول إلى مساحة تخزين سحابي مشتركة ليس عضوًا فيها. يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "teamDriveMembershipRequired",
        "message": "The attempted action requires shared drive membership."
      }
    ],
    "code": 403,
    "message": "The attempted action requires shared drive membership."
  }
}

لإصلاح هذا الخطأ، يمكنك تجربة أيّ مما يلي:

  1. اطلب من مدير مساحة التخزين السحابي المشتركة إضافتك باستخدام الادّعاءات المناسبة للإجراء الذي يجب تنفيذه.

  2. راجِع الأدوار والأذونات في Drive لمعرفة المستخدمين الذين يمكنهم الوصول إلى مساحات التخزين المشترَكة وإدارتها. يمكن أيضًا العثور على معلومات إضافية عن مستويات الوصول في مقالة إنشاء مساحة تخزين سحابي مشترَكة.

teamDrivesFolderMoveInNotSupported

يحدث هذا الخطأ عندما يحاول مستخدم نقل مجلد من "ملفاتي" إلى مساحة تخزين سحابي مشتركة. يمثل نموذج JSON التالي تمثيل هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "teamDrivesFolderMoveInNotSupported",
        "message": "Moving folders into shared drives is not supported."
      }
    ],
    "code": 403,
    "message": "Moving folders into shared drives is not supported."
  }
}

لإصلاح هذا الخطأ، جرِّب أيًا مما يلي:

  • يمكنك نقل العناصر الفردية من المجلد إلى مساحة تخزين سحابي مشتركة باستخدام Drive API. اضبط المَعلمة supportsAllDrives=true للإشارة إلى توفّر كل من "ملفاتي" ومساحات التخزين السحابي المشتركة.

  • إذا كان عليك نقل المجلد إلى "مساحة تخزين سحابي مشتركة"، استخدِم واجهة مستخدم Drive. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة نقل المجلدات إلى مساحات التخزين السحابي المشتركة بصفتك مشرفًا.

teamDrivesParentLimit

يحدث هذا الخطأ عندما يحاول مستخدم إضافة أكثر من عنصر رئيسي واحد إلى عنصر في مساحة تخزين سحابي مشتركة. يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "teamDrivesParentLimit",
        "message": "A shared drive item must have exactly one parent."
      }
    ],
    "code": 403,
    "message": "A shared drive item must have exactly one parent."
  }
}

لحلّ هذا الخطأ، استخدِم اختصارات Drive لإضافة روابط متعددة إلى ملف. على الرغم من أنّ الاختصار يمكن أن يتضمّن ملفًا رئيسيًا واحدًا فقط، يمكن نسخ ملف الاختصار إلى المواقع الإضافية. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء اختصار لملف في Drive.

UrlLeaseLimitExceeded

يحدث هذا الخطأ عند محاولة حفظ بيانات ألعاب Google Play من خلال تطبيقك. يمثّل نموذج JSON التالي هذا الخطأ:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "UrlLeaseLimitExceeded",
    "message": "Too many pending uploads for this snapshot. Please finish or cancel some before creating more."
   }
  ],
  "code": 403,
  "message": "Too many pending uploads for this snapshot. Please finish or cancel some before creating more."
 }
}

لحلّ هذا الخطأ، أكمِل أو ألغِ أي عمليات تحميل لإحدى اللقطات قبل إنشاء مزيد من اللقطات.

userRateLimitExceeded

يحدث هذا الخطأ عند بلوغ الحد الأقصى المسموح به لكل مستخدم. قد يكون هذا الحدّ مفروَضًا من خلال وحدة تحكّم Google Cloud أو من خلال واجهة برمجة التطبيقات في Drive. يمثّل نموذج JSON التالي هذا الخطأ:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "userRateLimitExceeded",
    "message": "User Rate Limit Exceeded"
   }
  ],
  "code": 403,
  "message": "User Rate Limit Exceeded"
 }
}

لإصلاح هذا الخطأ، جرِّب أيًا مما يلي:

للحصول على معلومات عن حدود Drive API، يُرجى الاطّلاع على الحدود القصوى للاستخدام.

أخطاء 404

تعني هذه الأخطاء أنه لا يمكن الوصول إلى المورد المطلوب أو أنه غير موجود.

notFound

يحدث هذا الخطأ عندما لا يملك المستخدم إذن الوصول لقراءة أحد الملفات أو عندما لا يكون الملف موجودًا. يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "notFound",
        "message": "File not found {fileId}"
      }
    ],
    "code": 404,
    "message": "File not found: {fileId}"
  }
}

لإصلاح هذا الخطأ:

  1. إذا كان الملف في مساحة تخزين سحابي مشتركة وكنت تستخدم الطريقة files.get، تأكَّد من ضبط مَعلمة طلب البحث supportsAllDrives على true.
  2. أطلِع المستخدم على أنّه لا يملك إذن الوصول للقراءة إلى الملف أو أنّ الملف غير متوفّر.
  3. اطلب من المستخدم التواصل مع مالك الملف وطلب إذن بالوصول إليه.

أخطاء 429

تشير هذه الأخطاء إلى أنّه تم إرسال عدد كبير جدًا من الطلبات إلى واجهة برمجة التطبيقات بسرعة كبيرة جدًا.

rateLimitExceeded

يحدث هذا الخطأ عندما يرسل المستخدم عددًا كبيرًا جدًا من الطلبات في فترة زمنية معيّنة. يمثّل نموذج JSON التالي هذا الخطأ:

{
  "error": {
    "errors": [
      {
        "domain": "usageLimits",
        "reason": "rateLimitExceeded",
        "message": "Rate Limit Exceeded"
      }
    ],
    "code": 429,
    "message": "Rate Limit Exceeded"s
  }
}

لإصلاح هذا الخطأ، استخدِم دالة exponential backoff لإعادة محاولة الطلب.

أخطاء 500 و502 و503 و504

تحدث هذه الأخطاء عند حدوث خطأ غير متوقّع في الخادم أثناء معالجة الطلب. يمكن أن تؤدي مشاكل مختلفة إلى ظهور هذه الأخطاء، بما في ذلك تداخل توقيت الطلب مع طلب آخر أو طلب إجراء غير متوافق، مثل محاولة تعديل الأذونات لصفحة واحدة في Google Sites بدلاً من الموقع الإلكتروني بأكمله.

في ما يلي قائمة بالأخطاء من النوع 5xx:

  • 500 خطأ في الواجهة الخلفية
  • 502 مدخل غير صالح
  • 503 Service Unavailable
  • 504 Gateway Timeout

لإصلاح هذا الخطأ، استخدِم التراجع الدليلي لإعادة محاولة إرسال الطلب.