ربط Discourse بجداول بيانات Google

يتيح هذا الإضافة جلب بيانات مكون السمة linkify من ورقة عمل Google. حاليًا، سيتعين عليك تثبيت هذا التفرع لمكون السمة، ولكن قد يكون هناك حل في المستقبل لتمكينك من استخدام مكون السمة الفعلي مع هذه الإضافة.


الإعداد

الخطوات:

  1. قم بإنشاء حساب خدمة على Google Cloud Create service accounts  |  Identity and Access Management (IAM)  |  Google Cloud Documentation
    ستقوم Google بتحميل ملف JSON. احتفظ بمحتوياته بأمان.

  2. قم بإنشاء ورقة عمل Google وشاركها مع عنوان البريد الإلكتروني لحساب الخدمة.

  3. الصق الأسطر التالية في أسفل قسم env في ملف app.yml الخاص بك

     GOOGLE_ACCOUNT_TYPE: 'service_account'
     GOOGLE_CLIENT_ID: 'client-id-from-json-file'
     GOOGLE_CLIENT_EMAIL: "service-account-email-address"
     GOOGLE_PRIVATE_KEY:  التعليمات أدناه
    
  • كيفية إعداد معامل GOOGLE_PRIVATE_KEY؟

    • الصق المفتاح الموجود في ملف JSON في محرر الأكواد.
    • استخدم البحث والاستبدال واستبدل \n بـ \\n.
    • انسخ النتيجة والصقها في ملف app.yml أمام GOOGLE_PRIVATE_KEY مع تغليفها بين علامتي اقتباس مفردة ' ' .
  1. الآن اتبع الخطوات العادية لتثبيت الإضافة.

  2. قم بتثبيت هذا التفرع لمكون السمة Linkify.


إعدادات الإضافة

linkify_google_sheet_id: عند فتح ورقة عمل Google في متصفحك، فإن السلسلة الطويلة بعد https://docs.google.com/spreadsheets/d/ هي معرف جدول البيانات.

linkify_google_sheet_name: يمكنك وجود أوراق عمل متعددة في ملف Excel، مثل Sheet1، Sheet2، إلخ. ضع اسم ورقة العمل هنا.

linkify_google_sheet_cell_range: الأعمدة التي يتم منها جلب بيانات linkify. يتم ضبطه افتراضيًا على العمودين الأولين. يمكنك تغيير هذه القيمة. إليك دليل حول كيفية عمل نطاقات الخلايا. Google Sheets API Overview  |  Google for Developers


:page_facing_up: احصل على الكود

:raising_hand_woman: اطلب ميزة

:bug: أبلغ عن خلل

ضائع؟

شكرًا لك على دعم الإضافة @jrgong

7 إعجابات

@سام
مع هذا، أقترح أيضًا طريقة plugin-api تسمح بالربط بمصدر بيانات مكونات السمة واستبداله بشكل نظيف.

على سبيل المثال:

// أثناء الاستخدام
let data = useDataSource('linkify-data');
// يمكن للإضافات ومكونات السمة القيام بشيء من هذا القبيل

setDataSource('linkify-data', customDataObject);

الفكرة هنا هي أن مكون سمة آخر يمكنه استدعاء setDataSource لتعيين كائن آخر.
هذا سيتيح استبدال مصدر بيانات هذه المكونات دون تغيير أي شيء في الكود.
ما رأيكم؟

4 إعجابات

أعجبني ذلك! شكرًا مرة أخرى على العمل الرائع والتنفيذ @fzngagan

إعجابَين (2)