تشغِّل دالة في مشروع "برمجة تطبيقات Google". يجب نشر مشروع النص البرمجي للاستخدام مع واجهة برمجة التطبيقات لبرمجة التطبيقات، ويجب أن يشارك تطبيق الاتصال مشروع Cloud Platform نفسه.
تتطلّب هذه الطريقة الحصول على تفويض باستخدام رمز OAuth 2.0 المميّز والذي يتضمّن نطاقًا واحدًا على الأقل من النطاقات المدرَجة في قسم الترخيص. لا يمكن تنفيذ مشاريع النصوص البرمجية التي لا تتطلب إذنًا من خلال واجهة برمجة التطبيقات هذه. للعثور على النطاقات الصحيحة المطلوب تضمينها في الرمز المميّز للمصادقة، افتح صفحة نظرة عامة على مشروع النص البرمجي وانتقِل للأسفل إلى "نطاقات OAuth الخاصة بالمشروع".
يشير الخطأ 403, PERMISSION_DENIED: The caller does not have permission
إلى أنّ مشروع Cloud Platform المُستخدَم لتفويض الطلب ليس هو المشروع الذي يستخدمه النص البرمجي.
طلب HTTP
POST https://script.googleapis.com/v1/scripts/{scriptId}:run
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
مَعلمات المسار
المعلمات | |
---|---|
scriptId |
رقم تعريف النص البرمجي المطلوب تنفيذه. ابحث عن رقم تعريف النص البرمجي في صفحة إعدادات المشروع ضمن "المعرّفات". |
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
تمثيل JSON |
---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
الحقول | |
---|---|
function |
اسم الدالة المطلوب تنفيذها في النص البرمجي المحدد. لا يحتوي الاسم على أقواس أو معلمات. ويمكنها أن تشير إلى دالة في مكتبة مضمّنة، مثل |
parameters[] |
المَعلمات المطلوب تمريرها إلى الدالة التي يتم تنفيذها يجب أن يتطابق نوع الكائن لكل مَعلمة مع النوع المتوقَّع في "برمجة تطبيقات Google". لا يمكن أن تكون المَعلمات أنواع عناصر خاصة بـ "برمجة تطبيقات Google" (مثل |
sessionState |
تمّت إزالة هذا العمود. للاستخدام مع إضافات Android فقط. رقم تعريف يمثّل الجلسة الحالية للمستخدم في تطبيق Android في "مستندات Google" أو "جداول بيانات Google"، ويتم تضمينه كبيانات إضافية في Intent الذي يؤدّي إلى تشغيل الإضافة عند تشغيل إضافة Android مع حالة جلسة، تكتسب هذه الإضافة امتيازات نص برمجي مرتبط، أي أنّه يمكنه الوصول إلى معلومات، مثل موضع المؤشر الحالي للمستخدم (في "مستندات Google") أو الخلية المحدّدة (في "جداول بيانات Google"). لاسترداد الحالة، اتصل بالرقم |
devMode |
إذا كان |
نص الاستجابة
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
بدأ عرض لتنفيذ دالة "برمجة تطبيقات Google" بـ run
. لا تصل استجابة التنفيذ إلا بعد انتهاء تنفيذ الدالة. يتم إدراج الحدّ الأقصى لوقت تشغيل التنفيذ في دليل حصص "برمجة تطبيقات Google".
بعد بدء التنفيذ، يمكن أن يكون له إحدى المحصلات الأربع:
- إذا تم إرجاع دالة النص البرمجي بنجاح، سيحتوي الحقل
response
على كائنExecutionResponse
يتضمن القيمة المعروضة للدالة في حقلresult
للكائن. - إذا طرحت دالة النص البرمجي (أو برمجة التطبيقات نفسها) استثناءً، سيحتوي الحقل
error
على كائنStatus
. يحتوي الحقلdetails
لكائنStatus
على مصفوفة تتضمّن عنصرExecutionError
واحد يقدّم معلومات عن طبيعة الخطأ. - في حال عدم اكتمال عملية التنفيذ، سيكون الحقل
done
هوfalse
ولا يتوفّر الحقلresponse
أوerror
. - إذا تعذّر طلب
run
نفسه (على سبيل المثال، بسبب طلب مكتوب بشكل غير صحيح أو خطأ في التفويض)، ستعرض الطريقة رمز استجابة HTTP في نطاق 4XX بتنسيق مختلف لنص الاستجابة. تقوم مكتبات العملاء تلقائيًا بتحويل استجابة 4XX إلى فئة استثناء.
تمثيل JSON |
---|
{ "done": boolean, // Union field |
الحقول | |
---|---|
done |
يشير هذا الحقل إلى ما إذا كان تنفيذ النص البرمجي قد اكتمل. عملية التنفيذ المكتملة تتضمّن حقل |
حقل الاتحاد result . نتيجة العملية، التي يمكن أن تكون إما error أو response صالحة. إذا كانت done == false ، لم يتم ضبط error أو response . إذا كانت قيمة done == true ، قد يتم ضبط قيمة واحدة بالضبط من error أو response . قد لا تقدّم بعض الخدمات النتيجة. يمكن أن يكون result واحدًا فقط مما يلي: |
|
error |
إذا نجح طلب |
response |
إذا تم إرجاع دالة النص البرمجي بنجاح، سيحتوي هذا الحقل على كائن كائن يحتوي على حقول من نوع عشوائي يحتوي الحقل الإضافي |
نطاقات التفويض
يتطلب هذا الإعداد أحد نطاقات OAuth التالية:
https://apps-apis.google.com/a/feeds
https://apps-apis.google.com/a/feeds/alias/
https://apps-apis.google.com/a/feeds/groups/
https://mail.google.com/
https://sites.google.com/feeds
https://www.google.com/calendar/feeds
https://www.google.com/m8/feeds
https://www.googleapis.com/auth/admin.directory.group
https://www.googleapis.com/auth/admin.directory.user
https://www.googleapis.com/auth/documents
https://www.googleapis.com/auth/documents.currentonly
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/dynamiccreatives
https://www.googleapis.com/auth/forms
https://www.googleapis.com/auth/forms.currentonly
https://www.googleapis.com/auth/groups
https://www.googleapis.com/auth/script.cpanel
https://www.googleapis.com/auth/script.external_request
https://www.googleapis.com/auth/script.scriptapp
https://www.googleapis.com/auth/script.send_mail
https://www.googleapis.com/auth/script.storage
https://www.googleapis.com/auth/script.webapp.deploy
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/spreadsheets.currentonly
https://www.googleapis.com/auth/sqlservice
https://www.googleapis.com/auth/userinfo.email
لمزيد من المعلومات، يُرجى الاطِّلاع على نظرة عامة على OAuth 2.0.
الحالة
إذا نجح طلب run
ولكن طرحت دالة النص البرمجي (أو برمجة التطبيقات نفسها) استثناءً، سيحتوي حقل error
في نص الاستجابة على كائن Status
هذا.
تمثيل JSON |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
الحقول | |
---|---|
code |
رمز الحالة. بالنسبة إلى واجهة برمجة التطبيقات هذه، تكون هذه القيمة إما:
|
message |
رسالة خطأ تظهر باللغة الإنجليزية. فيتم ترجمة أي رسالة خطأ تظهر للمستخدم وإرسالها في الحقل |
details[] |
يشير ذلك المصطلح إلى مصفوفة تحتوي على عنصر كائن يحتوي على حقول من نوع عشوائي يحتوي الحقل الإضافي |