تُشغّل هذه الدالة إحدى الدوال في مشروع "برمجة تطبيقات Google". يجب نشر مشروع النص البرمجي لاستخدامه مع Apps Script API، ويجب أن يتشارك التطبيق الذي يستدعي واجهة برمجة التطبيقات مشروع 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/{deploymentId}:run
يستخدم عنوان URL بنية تحويل الترميز إلى gRPC.
مَعلمات المسار
| المعلمات | |
|---|---|
deploymentId |
رقم تعريف عملية نشر ملف API القابل للتنفيذ ابحث عن رقم تعريف عملية النشر ضمن نشر > إدارة عمليات النشر في "محرّر النصوص البرمجية". |
نص الطلب
يتضمن نص الطلب بيانات بالبنية التالية:
| تمثيل JSON |
|---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
| الحقول | |
|---|---|
function |
اسم الدالة المطلوب تنفيذها في النص البرمجي المحدّد لا يتضمّن الاسم أقواسًا أو مَعلمات. يمكن أن يشير إلى دالة في مكتبة مضمّنة، مثل |
parameters[] |
المَعلمات التي سيتم تمريرها إلى الدالة التي يتم تنفيذها يجب أن يتطابق نوع العنصر لكل مَعلمة مع النوع المتوقّع في "برمجة التطبيقات". لا يمكن أن تكون المَعلمات أنواع كائنات خاصة بمنصة "برمجة التطبيقات" (مثل |
sessionState |
تمّت إزالة هذا العمود. للاستخدام مع إضافات Android فقط. رقم تعريف يمثّل جلسة المستخدم الحالية في تطبيق "مستندات Google" أو "جداول بيانات Google" على Android، ويتم تضمينه كبيانات إضافية في Intent الذي يطلق الإضافة. عند تشغيل إضافة Android مع حالة جلسة، تحصل على امتيازات نص برمجي مرتبط، أي يمكنها الوصول إلى معلومات مثل موضع المؤشر الحالي للمستخدم (في "مستندات Google") أو الخلية المحدّدة (في "جداول بيانات Google"). لاسترداد الولاية، اتّصِل بالرقم |
devMode |
إذا كان |
نص الاستجابة
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
تمثّل هذه السمة عملية تنفيذ لدالة في "برمجة تطبيقات Google" تم بدؤها باستخدام run. لا يصل رد التنفيذ إلا بعد انتهاء تنفيذ الدالة. يتم إدراج الحد الأقصى لوقت تشغيل التنفيذ في دليل حصص Apps Script.
بعد بدء التنفيذ، يمكن أن تكون إحدى النتائج الأربع التالية:
- إذا تم عرض دالة البرنامج النصي بنجاح، سيحتوي الحقل
responseعلى الكائنExecutionResponseالذي يتضمّن قيمة العرض الخاصة بالدالة في الحقلresultالخاص بالكائن. - إذا عرضت دالة النص البرمجي (أو "برمجة تطبيقات Google" نفسها) استثناءً، سيحتوي الحقل
errorعلى عنصرStatus. يحتوي الحقلdetailsالخاص بالعنصرStatusعلى مصفوفة تتضمّن عنصرExecutionErrorواحد يقدّم معلومات حول طبيعة الخطأ. - إذا لم يكتمل التنفيذ بعد، سيكون الحقل
doneهوfalse، ولن يكون الحقلانresponseوerrorمتوفّرَين. - إذا تعذّر تنفيذ طلب
runنفسه (على سبيل المثال، بسبب طلب مكتوب بصيغة غير صحيحة أو خطأ في منح الإذن)، ستعرض الطريقة رمز استجابة HTTP في النطاق 4XX بتنسيق مختلف لنص الاستجابة. تحوّل مكتبات العملاء تلقائيًا الردّ 4XX إلى فئة استثناء.
| تمثيل JSON |
|---|
{ "done": boolean, // Union field |
| الحقول | |
|---|---|
done |
يشير هذا الحقل إلى ما إذا كان قد تم إكمال تنفيذ النص البرمجي. يحتوي التنفيذ المكتمل على حقل |
حقل الدمج result تمثّل نتيجة العملية، والتي يمكن أن تكون إما error أو response صالحة. إذا كان false == done، هذا يعني أنّه لم يتم ضبط أي من error أو response. إذا كان true == done، هذا يعني أنّه يمكن ضبط إما error أو response فقط. بعض الخدمات قد لا توفّر النتيجة. يمكن أن تكون result إحدى القيم التالية فقط: |
|
error |
إذا نجح طلب |
response |
إذا تم عرض دالة البرنامج النصي بنجاح، يحتوي هذا الحقل على عنصر هو كائن يحتوي على حقول من أي نوع، بالإضافة إلى حقل |
نطاقات التفويض
يجب توفير أحد نطاقات OAuth التالية:
https://apps-apis.google.com/a/feedshttps://apps-apis.google.com/a/feeds/alias/https://apps-apis.google.com/a/feeds/groups/https://mail.google.com/https://sites.google.com/feedshttps://www.google.com/calendar/feedshttps://www.google.com/m8/feedshttps://www.googleapis.com/auth/admin.directory.grouphttps://www.googleapis.com/auth/admin.directory.userhttps://www.googleapis.com/auth/documentshttps://www.googleapis.com/auth/documents.currentonlyhttps://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/dynamiccreativeshttps://www.googleapis.com/auth/formshttps://www.googleapis.com/auth/forms.currentonlyhttps://www.googleapis.com/auth/groupshttps://www.googleapis.com/auth/script.cpanelhttps://www.googleapis.com/auth/script.external_requesthttps://www.googleapis.com/auth/script.scriptapphttps://www.googleapis.com/auth/script.send_mailhttps://www.googleapis.com/auth/script.storagehttps://www.googleapis.com/auth/script.webapp.deployhttps://www.googleapis.com/auth/spreadsheetshttps://www.googleapis.com/auth/spreadsheets.currentonlyhttps://www.googleapis.com/auth/sqlservicehttps://www.googleapis.com/auth/userinfo.email
لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على بروتوكول OAuth 2.0.
الحالة
إذا نجح طلب run ولكن دالة النص البرمجي (أو "برمجة تطبيقات Google" نفسها) طرحت استثناءً، سيحتوي الحقل error في نص الاستجابة على عنصر Status هذا.
| تمثيل JSON |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| الحقول | |
|---|---|
code |
تمثّل هذه السمة رمز الحالة. بالنسبة إلى واجهة برمجة التطبيقات هذه، تكون هذه القيمة إما:
|
message |
يشير إلى رسالة خطأ موجّهة للمطوّرين، وهي باللغة الإنجليزية. يتم ترجمة أي رسالة خطأ موجّهة للمستخدمين وإرسالها في حقل |
details[] |
مصفوفة تحتوي على عنصر هو كائن يحتوي على حقول من أي نوع، بالإضافة إلى حقل |