راهنماها

چطور Google Sheets را به اپلیکیشنتان وصل کنیم

برای وصل کردن Google Sheets به اپتان، Google Sheets API را در یک پروژه Google Cloud فعال کنید، یک سرویس اکانت بسازید، اسپریدشیت را با نشانی ایمیل سرویس اکانت به اشتراک بگذارید، و کلیدش را به‌عنوان یک secret سمت سرور ذخیره کنید. سپس سرور شما ردیف‌ها را با spreadsheets.values.get می‌خواند و با spreadsheets.values.append ردیف اضافه می‌کند. اگر کاربران باید شیت‌های خودشان را وصل کنند، از OAuth استفاده کنید؛ و اگر شیت کاملاً عمومی است، برای خواندن یک کلید API ساده کافی است.

این راهنما مشخص می‌کند کدام روش مناسب است، فراخوانی‌هایی که لازم دارید، سهمیه‌ها و نکات مهم، و پرامپت‌هایی برای ابزار ساخت اپ با هوش مصنوعی. جزئیات گوگل از مستندات توسعه‌دهنده گوگل تا سپتامبر ۲۰۲۶ گرفته شده‌اند.

چرا اصلاً یک شیت را وصل کنیم

دلایل رایج:

  • حفظ روال کار تیم. کارکنان به ویرایش فهرست قیمت یا برنامه در Sheets ادامه می‌دهند؛ اپ آن را نشان می‌دهد.
  • جمع‌آوری داده در جایی که مردم از قبل نگاه می‌کنند. ثبت‌نام‌های جدید، سفارش‌ها یا پاسخ‌های فرم به‌صورت ردیف وارد می‌شوند.
  • گزارش‌گیری. داده اپ را برای افرادی که با اسپریدشیت کار می‌کنند به یک شیت خروجی بگیرید.
  • یک مرحله میانی. از شیت شروع کنید، سپس به یک پایگاه داده درست منتقل شوید. چطور یک اسپریدشیت را به اپ تبدیل کنیم را ببینید.

انتخاب روش ورود اپ به Google

راهنمای اعتبارنامه‌های Google سه نوع را شرح می‌دهد:

اعتبارنامهبه چه چیزی دسترسی داردبهترین کاربرد
کلید APIفقط داده‌های عمومی، مثل فایل‌هایی که با «هر کسی که لینک را دارد» به اشتراک گذاشته شده‌اندخواندن یک شیت عمومی
سرویس اکانتداده‌ای که متعلق به اپ شماست، یا فایل‌های مشخصی که با ایمیل سرویس اکانت به اشتراک گذاشته شده‌انداپ شما که شیت‌های خودتان را می‌خواند و می‌نویسد
OAuth client IDفایل‌های شخصی کاربر، پس از رضایت اواجازه دادن به هر کاربر برای وصل کردن شیت‌های خودش

برای بیشتر اپ‌ها، سرویس اکانت انتخاب درستی است: یک مجموعه اعتبارنامه که متعلق به خودتان است و فقط به شیت‌هایی دسترسی دارد که صریحاً با آن به اشتراک گذاشته‌اید.

راهنمای گام‌به‌گام با سرویس اکانت

  1. یک پروژه Google Cloud بسازید یا انتخاب کنید و Google Sheets API را فعال کنید.
  2. یک سرویس اکانت و کلید برای آن بسازید. کلید یک فایل JSON است؛ آن را مثل رمز عبور نگه دارید.
  3. اسپریدشیت را با نشانی ایمیل سرویس اکانت به اشتراک بگذارید، به‌صورت Viewer برای فقط‌خواندن یا Editor برای نوشتن. راهنمای گوگل می‌گوید این کار از طریق صفحه معمول اشتراک‌گذاری انجام می‌شود.
  4. کلید را به‌عنوان secret روی سرور ذخیره کنید، مثلاً GOOGLE_SERVICE_ACCOUNT_JSON، همراه با شناسه اسپریدشیت (رشته بلندی که در نشانی شیت است) به‌عنوان SHEET_ID.
  5. API را از سرور با کتابخانه کلاینت گوگل برای زبان برنامه‌نویسی‌تان فراخوانی کنید.
  6. خواندن‌ها را کَش کنید اگر بازدیدکنندگان زیادی داده یکسان را می‌بینند، تا به سهمیه نخورید.

فراخوانی‌هایی که استفاده می‌کنید

از راهنمای گوگل برای خواندن و نوشتن مقادیر:

متدکاری که انجام می‌دهد
spreadsheets.values.getیک محدوده را می‌خواند، مثل Leads!A1:E
spreadsheets.values.batchGetچند محدوده را در یک درخواست می‌خواند
spreadsheets.values.updateدر یک محدوده مشخص می‌نویسد
spreadsheets.values.appendردیف‌ها را بعد از داده‌های موجود در یک جدول اضافه می‌کند

محدوده‌ها با نماد A1 نوشته می‌شوند. گوگل اشاره می‌کند که محدوده‌ای بدون نام شیت، مثل A1:B2، روی اولین شیت اعمال می‌شود، پس نام برگه را صریحاً بنویسید تا وقتی کسی ترتیب برگه‌ها را عوض می‌کند غافلگیر نشوید.

RAW در برابر USER_ENTERED

نوشتن‌ها به valueInputOption نیاز دارند:

  • RAW دقیقاً همان چیزی را که می‌فرستید، به‌صورت متن ذخیره می‌کند. =1+2 به‌صورت متن =1+2 ذخیره می‌شود.
  • USER_ENTERED ورودی را طوری در نظر می‌گیرد که انگار در Sheets تایپ شده: تاریخ‌ها تاریخ می‌شوند و =1+2 یک فرمول می‌شود.

اگر متنی را می‌نویسید که کاربران در اپ تایپ کرده‌اند، از RAW استفاده کنید. با USER_ENTERED، کسی می‌تواند یک فرمول بفرستد که وقتی همکارش شیت را باز می‌کند اجرا شود.

سهمیه‌ها و خطاها

از سپتامبر ۲۰۲۶، صفحه محدودیت‌های Sheets API گوگل این‌ها را فهرست کرده است:

محدودیتدرخواست‌های خواندندرخواست‌های نوشتن
در دقیقه برای هر پروژه۳۰۰۳۰۰
در دقیقه برای هر کاربر در هر پروژه۶۰۶۰

تا وقتی در سهمیه‌های دقیقه‌ای بمانید، محدودیت روزانه‌ای وجود ندارد. عبور از آن خطای 429: Too many requests برمی‌گرداند، و گوگل تأخیر نمایی کوتاه‌شده را توصیه می‌کند: بعد از هر تلاش ناموفق بیشتر صبر کنید، با یک تأخیر تصادفی، تا یک حد بیشینه. یک درخواست منفرد که بیش از ۱۸۰ ثانیه طول بکشد timeout می‌شود.

در عمل: هر بار صفحه‌ای باز می‌شود API را صدا نزنید. داده شیت را یک دقیقه یا بیشتر کَش کنید، خواندن‌ها را با batchGet دسته‌ای کنید، و جایی که ممکن است نوشتن‌ها را دسته‌ای کنید.

گزینه‌ها و مبادلات

روشمزایامعایب
شیت به‌عنوان منبع زنده دادهکارکنان در ابزار آشنا ویرایش می‌کنند؛ صفحه مدیریتی لازم نیست ساخته شودسهمیه‌ها، نبود دسترسی جداگانه برای هر ردیف، و خراب شدن آسان با تغییر نام یک ستون
همگام‌سازی شیت با پایگاه دادهخواندن سریع و قابل‌اعتماد؛ اگر Sheets خراب شود اپ کار می‌کندبه یک کار همگام‌سازی و یک قانون برای اینکه کدام طرف برنده است نیاز دارید
پایگاه داده اول، خروجی به شیتاپ داده را مالک است؛ شیت یک گزارش استویرایش‌های داخل شیت به اپ برنمی‌گردد
ابزار اتوماسیون میانیبرای جریان‌های ساده بدون کدیک اشتراک دیگر؛ اشکال‌زدایی سخت‌تر

برای هر چیزی با کاربران زیاد یا داده حساس، پایگاه داده منبع قابل‌اعتمادتر است. پایگاه داده چیست را ببینید.

پرامپت‌هایی برای ابزار ساخت با هوش مصنوعی

خواندن یک شیت:

تب «Menu» شیت گوگلمان را در صفحه منو نمایش بده. Google Sheets API را از سرور با یک سرویس اکانت استفاده کن که کلید JSON آن در secret با نام GOOGLE_SERVICE_ACCOUNT_JSON است، و شناسه اسپریدشیت در SHEET_ID. محدوده Menu!A2:D را بخوان (نام، توضیح، قیمت، دسته). نتیجه را ۵ دقیقه کَش کن. اگر API خطا داد، آخرین نسخه کَش‌شده را نشان بده. هرگز کلید را به مرورگر نفرست.

نوشتن ردیف‌ها:

وقتی کسی فرم تماس را ارسال می‌کند، آن را در پایگاه داده ذخیره کن و همچنین با spreadsheets.values.append با valueInputOption برابر RAW یک ردیف به تب «Leads» اضافه کن (تاریخ، نام، ایمیل، پیام). اگر گوگل 429 برگرداند، با تأخیر نمایی دوباره تلاش کن؛ اگر باز هم شکست خورد، سرنخ را در پایگاه داده نگه دار و بعداً دوباره تلاش کن.

اشتباه‌های رایج

  • فراموش کردن اشتراک شیت با ایمیل سرویس اکانت. در این صورت API خطای دسترسی می‌دهد، حتی اگر کلید درست باشد.
  • کلید در فرانت‌اند یا مخزن کد. کلید JSON به هر شیتی که با آن به اشتراک گذاشته شده دسترسی می‌دهد. چطور کلیدهای API را ایمن نگه داریم را ببینید.
  • استفاده از USER_ENTERED برای ورودی کاربر، که تزریق فرمول را ممکن می‌کند.
  • صدا زدن API در هر درخواست و رسیدن به سهمیه دقیقه‌ای در اولین اوج ترافیک.
  • وابسته بودن به موقعیت ستون‌ها. کسی یک ستون اضافه می‌کند و اپ داده اشتباه را می‌خواند. ردیف سرصفحه را بخوانید و بر اساس نام نگاشت کنید، یا سرصفحه را قفل کنید.
  • اشتراک‌گذاری شیت گسترده‌تر از نیاز. «هر کسی که لینک را دارد» آن را عمومی می‌کند.
  • استفاده از شیت به‌عنوان پایگاه داده چندکاربره. نوشتن‌های همزمان و نبود دسترسی باعث از دست رفتن یا نشت داده می‌شود.

چک‌لیست

  • Sheets API فعال و سرویس اکانت ساخته شده است
  • شیت با ایمیل سرویس اکانت و با پایین‌ترین نقش لازم به اشتراک گذاشته شده
  • کلید و شناسه شیت به‌عنوان secret سمت سرور ذخیره شده‌اند
  • همه فراخوانی‌ها از سرور انجام می‌شوند
  • نام برگه‌ها در محدوده‌ها استفاده شده‌اند
  • برای متن ارسالی کاربر از RAW استفاده شده
  • خواندن‌ها کَش شده‌اند و 429 با تأخیر مدیریت می‌شود
  • اپ اگر Sheets در دسترس نباشد به‌درستی کار می‌کند
  • تصمیم گرفته شده کدام طرف منبع حقیقت است

Google Sheets در Mythex

Mythex دو راه متفاوت برای کار با Sheets دارد. Connectors حساب Google شما را به Mythex وصل می‌کنند تا عامل هنگام ساخت بتواند از آن استفاده کند، مثلاً خواندن یک شیت برای ساختن داشبورد از روی آن. مستندات می‌گویند اعتبارنامه نزد سرویس اتصال Mythex می‌ماند و هرگز وارد کد شما نمی‌شود (بخش Connectors را ببینید، و هر دسترسی‌ای را که گوگل می‌خواهد تأیید کنید). برای اینکه اپ منتشرشده خودش بتواند شیتی را بخواند یا بنویسد، روش قابل‌اعتماد همان چیزی است که در این راهنما آمده: یک کلید سرویس اکانت به‌عنوان secret پروژه ذخیره می‌شود و فراخوانی‌های Sheets API از سرور شما انجام می‌شوند، مثل ادغام هر API. اگر از شیت فراتر رفته‌اید، از عامل بخواهید داده را به پایگاه داده پروژه منتقل کند و یک داشبورد روی آن بسازد.

پرسش‌ها

اپ من چطور می‌تواند یک Google Sheet خصوصی را بخواند؟

روش معمول استفاده از سرویس اکانت Google Cloud است: Sheets API را فعال کنید، سرویس اکانت و کلیدش را بسازید، و سپس اسپریدشیت را با نشانی ایمیل سرویس اکانت به‌عنوان Viewer یا Editor به اشتراک بگذارید. سرور شما با استفاده از کلید، که به‌عنوان secret ذخیره شده، Sheets API را فراخوانی می‌کند.

آیا می‌توانم برای دسترسی به یک اسپریدشیت از کلید API گوگل استفاده کنم؟

فقط برای داده‌های عمومی. راهنمای اعتبارنامه‌های Google می‌گوید کلیدهای API برای دسترسی ناشناس به داده‌های عمومی‌اند، مثل فایل‌هایی که با هر کسی که لینک را دارد به اشتراک گذاشته شده‌اند. شیت‌های خصوصی به سرویس اکانت یا OAuth نیاز دارند.

محدودیت‌های Google Sheets API چیست؟

از سپتامبر ۲۰۲۶، گوگل ۳۰۰ درخواست خواندن و ۳۰۰ درخواست نوشتن در دقیقه برای هر پروژه، و ۶۰ مورد از هرکدام در دقیقه برای هر کاربر در هر پروژه را اعلام می‌کند، بدون محدودیت روزانه. عبور از این حدود خطای 429 برمی‌گرداند؛ گوگل تأخیر نمایی کوتاه‌شده (truncated exponential backoff) را توصیه می‌کند.

آیا باید از Google Sheets به‌عنوان پایگاه داده اپم استفاده کنم؟

برای اپ‌های کوچک و کم‌ترافیک که افراد داده را در خود شیت هم ویرایش می‌کنند، کار می‌کند. برای کاربران زیاد، نوشتن‌های مکرر، ارتباط بین رکوردها یا دسترسی‌های جداگانه برای هر کاربر، یک پایگاه داده واقعی قابل‌اعتمادتر است، و همچنان می‌توانید داده را به یک شیت خروجی بگیرید.

Mythex · Pricing · با هوش مصنوعی هر چیزی بسازید · قالب‌های وب‌سایت و اپلیکیشن · مقایسه‌ی Mythex · واژه‌نامه‌ی ساخت اپلیکیشن با هوش مصنوعی · ابزارهای رایگان ساخت اپلیکیشن با هوش مصنوعی · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)