Google Calendar جوڑیں
یہ گائیڈ بتاتی ہے کہ Google Calendar کو کسی ورک اسپیس سے کیسے جوڑیں۔ یہ فی ورک اسپیس ہے: وہ اُس ورک اسپیس کے ایونٹس صرف پڑھنے کے انداز میں Control Center میں سنک کرتی ہے۔ مکمل تصویر کے لیے کیلنڈر اور شیڈولنگ دیکھیں۔
اکاؤنٹ جوڑیں
سیکشن کا عنوان “اکاؤنٹ جوڑیں”- سائیڈبار میں کیلنڈر کھولیں۔
- کیلنڈر سائیڈبار میں کیلنڈر اکاؤنٹ شامل کریں پر کلک کریں۔ (یہی سیکشن ترتیبات → ورک اسپیس → پروفائل اور شناخت میں Google Calendar کے تحت بھی موجود ہے۔)
- منتخب کریں کہ اجازت کیسے دی جائے:
- Control Center کی Google ایپ استعمال کریں — سیٹ اپ کرنے کے لیے کچھ نہیں۔ جب آپ کے بلڈ کے ساتھ کوئی ایپ شامل ہو تو یہی ڈیفالٹ ہے۔
- میرا اپنا Google Cloud کلائنٹ استعمال کریں — اپنے پروجیکٹ سے کلائنٹ id اور secret پیسٹ کریں (دیکھیں اپنا Google کلائنٹ لائیں)۔
- Google Calendar منسلک کریں پر کلک کریں۔ ڈائیلاگ ایک مختصر کوڈ اور Google کے ڈیوائس صفحے کا لنک دکھاتا ہے۔
- وہ صفحہ کسی بھی ڈیوائس پر کھولیں، کوڈ درج کریں اور مطلوبہ رسائی کی منظوری دیں۔ ڈائیلاگ خود بند ہو جاتا ہے اور آپ کے ایونٹس سنک ہونے لگتے ہیں۔
یہ تبادلہ آپ کی ڈیوائس نہیں بلکہ سرور چلاتا ہے اور نتیجے میں ملنے والا ریفریش ٹوکن اپنے پاس رکھتا ہے — اسی لیے کوڈ ”کسی بھی ڈیوائس“ پر منظور ہوتا ہے، اِس ایپ میں خاص طور پر نہیں۔
اکاؤنٹ صرف فعال ورک اسپیس سے جڑتا ہے۔ ورک اسپیس بدلیں تو آپ کو اُس ورک اسپیس کے کیلنڈر نظر آئیں گے۔
کنیکٹ فلو calendar.readonly کے ساتھ ساتھ آپ کا ای میل طلب کرتا ہے — بلٹ اِن ایپ اور
آپ کے پیسٹ کردہ کلائنٹ، دونوں کے لیے ایک ہی اسکوپس۔ Control Center ایونٹس پڑھتا ہے؛
یہ Google پر دعوت نامے نہ بناتا ہے، نہ اُن میں ترمیم یا حذف کرتا ہے اور نہ اُن کا
جواب دیتا ہے۔
سنک کیسے کام کرتا ہے
سیکشن کا عنوان “سنک کیسے کام کرتا ہے”سرور شیڈول کا مالک ہے: یہ ہر دو منٹ بعد ہر ورک اسپیس کے منسلک اکاؤنٹس کی اسکین کرتا ہے اور ایونٹس کو اُس ورک اسپیس کے ڈیٹا بیس میں لکھتا ہے۔ کلائنٹس Google سے کبھی بات نہیں کرتے — جو سرور نے لکھا ہوتا ہے، وہی پڑھتے ہیں۔
اسکین صرف بدلاؤ پر مشتمل ہوتی ہے۔ ہر کیلنڈر پر پہلی گزر ایک گھومتی ونڈو (60 دن پیچھے، 90 دن آگے) لاتی ہے اور Google کا سنک ٹوکن محفوظ کرتی ہے؛ بعد کی گزریں وہی ٹوکن پیش کرتی ہیں اور صرف بدلا ہوا حصہ وصول کرتی ہیں، اور یہی چیز دو منٹ کی رفتار کو قابلِ برداشت بناتی ہے۔ ونڈو ہر 24 گھنٹے بعد اور جب بھی Google ٹوکن باطل کرے، مکمل سنک کے ساتھ دوبارہ اینکر ہوتی ہے۔
ریفریش ٹوکن سرور کی طرف رہتے ہیں: سرور کی ڈیٹا ڈائریکٹری کے اندر secrets.json میں،
صرف مالک کی رسائی کے ساتھ (0600) لکھے جاتے ہیں — نہ OS کی چین میں اور نہ کبھی کسی
کلائنٹ ڈیوائس پر۔
متعدد اکاؤنٹس جوڑیں
سیکشن کا عنوان “متعدد اکاؤنٹس جوڑیں”ایک ورک اسپیس کئی Google اکاؤنٹس جوڑ سکتی ہے (مثلاً کام کا اور ذاتی)۔ ہر ایک کے لیے کنیکٹ کا مرحلہ دہرائیں؛ اُن کے ایونٹس ایک ہی مہینہ / ہفتہ / ایجنڈا ویوز میں ضم ہو جاتے ہیں۔ ہر اکاؤنٹ الگ الگ سنک اور ریفریش ہوتا ہے اور ہر ایک کو علیحدہ طور پر منقطع کیا جا سکتا ہے۔
میعاد ختم شدہ اکاؤنٹ دوبارہ منسلک کریں
سیکشن کا عنوان “میعاد ختم شدہ اکاؤنٹ دوبارہ منسلک کریں”اگر Google کسی اکاؤنٹ کا ٹوکن مستقل طور پر باطل کر دے (منسوخ یا بہت عرصے سے میعاد ختم شدہ سیشن)، تو سنک رک جاتا ہے اور Control Center کیلنڈر پر دوبارہ منسلک کریں کا بینر، ساتھ ہی ایک ڈیسک ٹاپ اطلاع دکھاتا ہے۔ دوبارہ منسلک کریں پر کلک کریں اور نیا کوڈ منظور کریں؛ اگلے کامیاب سنک پر بینر غائب ہو جاتا ہے۔
اکاؤنٹ منقطع کریں
سیکشن کا عنوان “اکاؤنٹ منقطع کریں”کیلنڈر سائیڈبار سے (یا ترتیبات → ورک اسپیس → پروفائل اور شناخت سے) اکاؤنٹ پر منقطع کریں پر کلک کریں۔ یہ اُس کے سنک شدہ ایونٹس حذف کرتا ہے اور سرور پر اُس کے محفوظ ٹوکن صاف کر دیتا ہے۔
ہیڈلیس سرور سے جوڑیں
سیکشن کا عنوان “ہیڈلیس سرور سے جوڑیں”بغیر GUI والا سرور وہی اکاؤنٹ اپنے ٹرمنل سے جوڑتا ہے:
GOOGLE_OAUTH_CLIENT_ID=<id> GOOGLE_OAUTH_CLIENT_SECRET=<secret> \ cc_server calendar connect --data-dir <dir> --workspace <workspace-id>یہ ایک کوڈ اور URL دکھاتا ہے، منظوری کا انتظار کرتا ہے، پھر ٹوکن محفوظ کرتا ہے اور اگلی اسکین پر سنک کرتا ہے۔
سورس سے بنایا گیا بلڈ کوئی Google کلائنٹ ساتھ نہیں لاتا، اس لیے id اور secret
لازمی ہیں — GOOGLE_OAUTH_CLIENT_ID اور GOOGLE_OAUTH_CLIENT_SECRET سیٹ کریں۔ کوئی
--google-client-id فلیگ نہیں ہے (نامعلوم فلیگز نظر انداز ہو جاتے ہیں)۔ ماحول کی یہ
جوڑی نہ ہونے پر کمانڈ missing-client کی خرابی کے ساتھ ختم ہو جاتی ہے۔
اپنا Google کلائنٹ لائیں (فورکس اور سیلف ہوسٹنگ)
سیکشن کا عنوان “اپنا Google کلائنٹ لائیں (فورکس اور سیلف ہوسٹنگ)”جاری شدہ بلڈز کے ساتھ Google کلائنٹ آتا ہے، اس لیے زیادہ تر لوگ اِسے چھوتے بھی نہیں۔ اپنا کلائنٹ اُس وقت لیں جب آپ سورس سے بلڈ کرتے ہوں، اپنا سرور چلاتے ہوں، یا چاہتے ہوں کہ رضامندی کی اسکرین آپ کے اپنے پروجیکٹ کا نام لے۔
- Google Cloud Console میں Google Calendar API فعال کریں اور OAuth consent screen کنفیگر کریں، اور
calendar.readonly،openidاورemailاسکوپس شامل کریں۔ جب تک ایپ غیر تصدیق شدہ ہے، خود کو ایک test user کے طور پر شامل کریں۔ رضامندی کی اسکرین پرcalendar.eventsشامل کرنا RSVP فعال نہیں کرتا — Control Center وہ اسکوپ کبھی طلب نہیں کرتا۔ - ایپلیکیشن کی قسم TVs and limited input devices کا OAuth client ID بنائیں اور کلائنٹ id اور کلائنٹ secret دونوں کاپی کریں۔
- اِنہیں یا تو ہر کنیکٹ پر دیں (ڈائیلاگ میں میرا اپنا Google Cloud کلائنٹ استعمال کریں منتخب کریں) یا سرور بھر کے لیے
GOOGLE_OAUTH_CLIENT_IDاورGOOGLE_OAUTH_CLIENT_SECRETکے ساتھ دیں۔
سرور بھر کی یہ جوڑی ہر جگہ بلٹ اِن جوڑی کی جگہ لے لیتی ہے، بشمول ”Control Center کی Google ایپ استعمال کریں“ والے آپشن کے پیچھے — چنانچہ آپ کے اپنے سرور پر وہ آپشن آپ کی ہی ایپ ہے۔
کلائنٹ secret کبھی سرور سے باہر نہیں جاتا: کوئی RPC جواب اُسے ساتھ نہیں لے جاتا اور سرور کے اپنے کلائنٹ سے جڑا اکاؤنٹ اُس جوڑی کی کاپی کے بجائے ایک مارکر محفوظ کرتا ہے، اس لیے اُسے بدلنا نئی قدر کے ساتھ ری اسٹارٹ کرنے کا معاملہ بھر ہے۔
مسائل کا حل
سیکشن کا عنوان “مسائل کا حل”| علامت | ممکنہ وجہ |
|---|---|
| ڈائیلاگ میں کوئی بلٹ اِن آپشن نہیں ہوتا | اِس بلڈ کے ساتھ کوئی Google کلائنٹ نہیں آتا (سورس بلڈ)، یا سرور جوڑی کے صرف ایک حصے کے ساتھ شروع کیا گیا تھا۔ id اور secret دونوں لازمی ہیں |
فلو شروع کرتے وقت invalid_scope |
اُس Cloud پروجیکٹ میں ڈیوائس کوڈ کلائنٹ کے لیے Calendar کی اجازت نہیں ہے۔ اِس کے بجائے loopback یا web کلائنٹ پروجیکٹ استعمال کریں |
Google سے invalid_client |
کلائنٹ TVs and limited input devices قسم کا نہیں ہے، یا id اور secret مختلف کلائنٹس کے ہیں |
| منظوری کامیاب ہو جاتی ہے مگر سنک خالی رہتا ہے | رضامندی کی اسکرین پر آپ کا اکاؤنٹ test user نہیں ہے، یا calendar.readonly عطا نہیں کیا گیا |
| منظوری دینے سے پہلے کوڈ کی میعاد ختم ہو جاتی ہے | ڈیوائس کوڈ مختصر مدت کے ہوتے ہیں۔ نیا کوڈ لینے کے لیے کنیکٹ دوبارہ شروع کریں |
| RSVP پر ”آپ کا جواب اپ ڈیٹ نہیں ہو سکا“ | متوقع: کنیکٹ فلو calendar.events کبھی طلب نہیں کرتا |
| سرور لاگ میں ریفریش وارننگ کے ساتھ سنک رک جاتا ہے | اکاؤنٹ ایسے کلائنٹ سے جڑا تھا جو اب کنفیگر نہیں ہے۔ اکاؤنٹ دوبارہ منسلک کریں، یا وہ کلائنٹ id اور secret بحال کریں |
متعلقہ گائیڈز
سیکشن کا عنوان “متعلقہ گائیڈز”- میٹنگ ریکارڈ اور خلاصہ کریں: کسی ایونٹ کو ریکارڈنگ میں بدلیں
- ہیڈلیس سرور چلائیں: ٹوکن اور سنک شیڈول کہاں رہتے ہیں
- GitHub انضمام سیٹ کریں