عملکردی را در پروژه Apps Script اجرا می کند. پروژه اسکریپت باید برای استفاده با Apps Script API مستقر شود و برنامه فراخوان باید همان پروژه Cloud Platform را به اشتراک بگذارد.
این روش نیاز به مجوز با یک توکن OAuth 2.0 دارد که حداقل یکی از حوزه های فهرست شده در بخش مجوز را شامل می شود. پروژه های اسکریپتی که نیازی به مجوز ندارند از طریق این API قابل اجرا نیستند. برای یافتن دامنههای صحیح برای گنجاندن در نشانه احراز هویت، صفحه نمای کلی پروژه اسکریپت را باز کنید و به سمت «محدودههای پروژه OAuth» بروید.
خطای 403, PERMISSION_DENIED: The caller does not have permission
نشان میدهد که پروژه Cloud Platform که برای مجوز دادن به درخواست استفاده میشود با پروژه مورد استفاده در اسکریپت یکسان نیست.
درخواست HTTP
POST https://script.googleapis.com/v1/scripts/{scriptId}:run
URL از دستور GRPC Transcoding استفاده می کند.
پارامترهای مسیر
پارامترها | |
---|---|
scriptId | شناسه اسکریپت اسکریپتی که باید اجرا شود. شناسه اسکریپت را در صفحه تنظیمات پروژه در قسمت «IDs» پیدا کنید. |
درخواست بدن
بدنه درخواست حاوی داده هایی با ساختار زیر است:
نمایندگی JSON |
---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
فیلدها | |
---|---|
function | نام تابعی که باید در اسکریپت داده شده اجرا شود. نام شامل پرانتز یا پارامتر نیست. میتواند به یک تابع در یک کتابخانه موجود مانند |
parameters[] | پارامترهایی که باید به تابع در حال اجرا منتقل شوند. نوع شی برای هر پارامتر باید با نوع مورد انتظار در Apps Script مطابقت داشته باشد. پارامترها نمی توانند انواع شیء خاص Apps Script (مانند یک |
sessionState | منسوخ شده فقط برای استفاده با افزونه های اندروید. شناسهای که نشاندهنده جلسه فعلی کاربر در برنامه Android برای Google Docs یا Sheets است که بهعنوان داده اضافی در Intent گنجانده شده است که افزونه را راهاندازی میکند. هنگامی که یک افزونه Android با وضعیت جلسه اجرا میشود، امتیازات یک اسکریپت محدود را به دست میآورد – یعنی میتواند به اطلاعاتی مانند موقعیت مکاننمای فعلی کاربر (در اسناد) یا سلول انتخابی (در کاربرگنگار) دسترسی داشته باشد. برای بازیابی وضعیت، با |
devMode | اگر |
بدن پاسخگو
در صورت موفقیت آمیز بودن، بدنه پاسخ حاوی داده هایی با ساختار زیر است:
نمایشی از اجرای یک تابع Apps Script با run
شروع شد. پاسخ اجرا تا زمانی که اجرای تابع به پایان برسد نمی رسد. حداکثر زمان اجرا در راهنمای سهمیه بندی Apps Script فهرست شده است.
پس از شروع اجرا، می تواند یکی از چهار نتیجه را داشته باشد:
- اگر تابع اسکریپت با موفقیت برگردد، فیلد
response
حاوی یک شیExecutionResponse
با مقدار بازگشتی تابع در فیلدresult
شی است. - اگر تابع اسکریپت (یا خود Apps Script) یک استثنا ایجاد کند، فیلد
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 | کد وضعیت. برای این API، این مقدار یا:
|
message | یک پیام خطای برنامهنویس، که به زبان انگلیسی است. هر پیام خطای کاربر بومی سازی شده و در قسمت |
details[] | آرایه ای که حاوی یک شی یک شی حاوی فیلدهایی از نوع دلخواه. یک فیلد اضافی |