حل الأخطاء

تعرض Google Drive API مستويَين من معلومات الخطأ:

  • رموز خطأ 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 وعدِّل الرمز وفقًا لذلك.

illegalKeepForeverModification

يحدث هذا الخطأ عند محاولة ضبط نسخة من ملف البيانات الثنائية تم وضع علامة "الاحتفاظ إلى الأبد" عليها على false. في ما يلي نموذج JSON يمثّل هذا الخطأ:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "illegalKeepForeverModification",
    "message": "Bad Request. Cannot update a revision to false that is marked as keepForever."
   }
  ],
  "code": 400,
  "message": "Bad Request. Cannot update a revision to false that is marked as keepForever."
 }
}

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

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"
  }
}

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

لا يُسمح لهذا المستخدم بتغيير قائمة التحكّم بالوصول

في ما يلي نموذج 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 إذا كنت تريد عرض البيانات الوصفية لإصدار معيّن، مثل نوع MIME.
  • استخدِم طريقة 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

يحدث هذا الخطأ عندما لا يكون تطبيقك مدرَجًا في قائمة التحكّم بالوصول (ACL) للملف. يمنع هذا الخطأ المستخدم من فتح الملف باستخدام تطبيقك. يوضّح نموذج 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 لمعرفة ما إذا كانت الأذونات على عنصر مساحة التخزين السحابي المشتركة هذا موروثة أو مطبّقة مباشرةً.

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. اطلب من المستخدم التواصل مع مشرف النطاق لطلب إذن الوصول إلى تطبيقك.

downloadRestrictedForRevision

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

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "download_restricted_for_revision",
        "message": "This revision cannot be downloaded by the authenticated user."
      }
    ],
    "code": 403,
    "message": "This revision cannot be downloaded by the authenticated user."
  }
}

لحلّ هذا الخطأ، عليك إبلاغ المستخدم بأنّ الطريقة الوحيدة لتنزيل مراجعات ملفات blob هي إذا تم وضع علامة "الاحتفاظ إلى الأبد" عليها. لمزيد من المعلومات، يُرجى الاطّلاع على تحديد المراجعات التي يجب حفظها من الحذف التلقائي.

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/workspace/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/workspace/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. إدارة مساحة التخزين في Drive وGmail و"صور Google"

  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."
  }
}

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

teamDriveHierarchyTooDeep

يحدث الخطأ teamDriveHierarchyTooDeep عند تجاوز الحد الأقصى لعدد مستويات المجلدات المتداخلة في مساحة التخزين السحابي المشتركة. لا يمكن أن تحتوي مساحة التخزين السحابي المشتركة الخاصة بالمستخدم على أكثر من 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 Console أو عن الخلفية البرمجية في 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
  }
}

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

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

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

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

  • 500 Backend error
  • 502 Bad Gateway
  • ‫503 Service Unavailable
  • ‫504 Gateway Timeout

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