نظرًا لأن الصفحات التي يتم الوصول إليها من قبل زوار موقع الويب لا يتم إنشاء ديناميكي عند طلبهم ولكن تم إنشاؤها مسبقًا وتخدم كملفات HTML ثابتة ، فإن عملية طرح الميزات الجديدة والمحتوى تبدو مختلفة قليلاً عن تطبيقات الويب "التقليدية".
التنمية المحلية: يمكن إجراء تطوير ميزات جديدة محليًا.
يأتي nuxt.js مع أدوات فعالة للغاية لدعم تجربة مطور رائعة مثل خادم Dev مع استبدال الوحدة الساخنة وإعادة التحميل المباشر.
يتم تخزين محتوى المنتجات في مستودع GIT جنبًا إلى جنب مع الكود المصدر ، بحيث يمكن للمطورين الاستفادة من بيانات المنتج الحقيقية أثناء التنفيذ والاختبار.
يجب أن تكون نقاط نهاية API باستخدام بعض الخادم الوهمي ، مثل Wiremock أو MockServer ، من أجل العمل بشكل مستقل عن الأنظمة الخارجية الحقيقية. لمصادقة Connect OpenID ، فكر في إعداد keycloak محليًا.
ملاحظة: لا يتضمن هذا المثال أي خادم وهمية.
المحتوى المسبق: في كل مرة يجب نشر بيانات المنتج الجديدة أو المحدثة على الموقع الإلكتروني ، يجب تحديث ملفات JSON المحددة مسبقًا في مستودع GIT قبل إنشاء إصدار جديد من ملفات HTML الثابتة.
سوف يتصل البرنامج النصي الخاص بالمحتوى Node.js بـ Salesforce ويحضر أحدث البيانات عبر API Salesforce Rest. يتم تحديث ملفات المحتوى JSON وفقًا لذلك ويمكن الالتزام بمستودع GIT.
الأمر متروك لك تمامًا أين ومتى يتم تنفيذ هذا البرنامج النصي. على سبيل المثال ، يمكن تشغيله كإجراء github أو في عملية CI على Travis CI.
ملاحظة: Salesforce هو مجرد مثال على مصدر بيانات محتمل لاكتساب المحتوى من. يمكن أيضًا إنشاء ملفات المحتوى من أي مصدر بيانات آخر.
نشر ملفات HTML الثابتة: يمثل كل التزام في مستودع GIT تطبيقًا معينًا ومحتوى لموقع الويب يمكن نشره.
تقوم عملية الإنشاء بتحويل الشفرة المصدرية إلى أجزاء محسّنة وتنشئ ملفات HTML الثابتة عن طريق حساب جميع الطرق التي يمكن الوصول إليها لمكونات الصفحة التي تم تنفيذها وملفات المحتوى المسبق مسبقًا.
أخيرًا ، يمكن نشر جميع ملفات مواقع الويب التي تم إنشاؤها إلى أي خادم ويب أو شبكة تسليم المحتوى ، على سبيل المثال NetLify.
ملاحظة: يمكن لعملية الإنشاء أيضًا الاستفادة من طلبات API لتحميل المحتوى الذي لا يتم تخزينه في ملفات المحتوى في مستودع GIT.
التحسين الديناميكي عبر واجهات برمجة التطبيقات: يتم تقديم ملفات HTML ثابتة عند تحميل موقع الويب في المتصفح. هذا سريع للغاية لأن لا شيء يحتاج إلى إنشاء ديناميكي على الخادم.
بمجرد أن تقوم صفحة الويب بتحميل ركلات JavaScript الديناميكية وتعزز الصفحة بميزات ديناميكية. يمكن أن يكون هذا ميزات مثل عربة التسوق أو عرض محتوى مستخدم مخصص.
يمكن جلب البيانات الديناميكية عن طريق إرسال طلبات API من المتصفح. يمكن للزوار المصادقة باستخدام بروتوكولات قياسية مثل OAUTH 2.0 و OpenID Connect للسماح لموقع الويب بتقديم المحتوى الفردي.
لماذا؟ يمكّن تسجيل الدخول مع مستخدم عميل حقيقي في مجتمع Lightning.
مطلوب هذه الخطوة إذا كنت تخطط لاستخدام البرنامج النصي تحديث المحتوى وإذا كنت ترغب في إعداد تسجيل تلقائي في مجتمع Lightning عندما يسجل المستخدمون الخروج في الموقع.
لماذا؟ يضيف الكائن المخصص "فئة المنتج" إلى ORG Salesforce الخاص بك ويقوم بتثبيت حقل مخصص على كائن Product2 للسماح لك بتحديد الفئة التي ينتمي إليها المنتج. يقوم أيضًا بتثبيت مكون ويب Lightning لاستخدامه في صفحة مجتمع تسجيل الخروج الخاصة والتي ستقوم تلقائيًا بتسجيل المستخدم.
تنزيل وتثبيت Salesforce CLI.
افتح محطة في دليل salesforce
.
قم بتوصيل Salesforce CLI بألواح Salesforce الخاصة بك.
sfdx force:auth:web:login -a MyOrg -s
نشر مشروع SFDX على ORG Salesforce.
sfdx force:source:deploy -p force-app
لماذا؟ يسمح لخادم API وبرنامج النصي للمحتوى بالاتصال بـ Salesforce مع مستخدم تقني محدد يسمح للتحكم في الوصول الفردي.
لماذا؟ مطلوب لعرض صفحة تسجيل الدخول أثناء تدفق مصادقة OpenID Connect.
إذا كنت ترغب في إعداد عمليات تسجيل تلقائية لمستخدمي المجتمع عند تسجيل الخروج على موقع الويب ، قم بتنفيذ هذه الخطوات الإضافية:
لماذا؟ مطلوب لمصادقة OpenID Connect لزوار موقع الويب ويسمح لخادم API وبرنامج النصي للمحتوى بالاتصال بـ Salesforce بطريقة آمنة.
هذه الخطوة اختيارية لأن مستودع GIT يحتوي بالفعل على بعض المنتجات والفئات للمثال.
يجب أن يكون لديك بعض السجلات لكائن Product2 في Salesforce Org الذي نشط ولديه إدخالات دفتر الأسعار في بعض دفتر الأسعار المستخدمة لتحديث المحتوى.
يمكنك أيضًا إنشاء بعض فئات المنتجات وتعيينها لمنتجاتك.
ملاحظة: يتطلب البرنامج النصي نشر بيانات تعريف Salesforce في Org الخاص بك.
افتح محطة في content-scripts
الدليل.
اضبط متغيرات البيئة التالية.
اسم | وصف |
---|---|
Salesforce_instance_url | عنوان URL الأساسي لمثيل Salesforce (نمط https://xx##.salesforce.com ) |
salesforce_api_version | إصدار API Salesforce للاستخدام |
salesforce_token_endpoint | Oauth 2.0 نقطة نهاية الرمز المميز لمثيل Salesforce |
salesforce_client_id | مفتاح المستهلك للتطبيق المتصل (تم نسخه من قبل من عرض التطبيق) |
salesforce_client_secret | سر المستهلك للتطبيق المتصل (تم نسخه من قبل من عرض التطبيق) |
salesforce_username | اسم المستخدم لمستخدم التكامل |
Salesforce_password | كلمة مرور مستخدم التكامل + الرمز المميز للأمان (ببساطة تسلسل الاثنين) |
salesforce_price_book_name | خياري. دفتر الأسعار للاستخدام. الافتراضي: "كتاب السعر القياسي" |
مثال:
SALESFORCE_INSTANCE_URL=https://eu25.salesforce.com
SALESFORCE_API_VERSION=49.0
SALESFORCE_TOKEN_ENDPOINT=https://login.salesforce.com/services/oauth2/token
SALESFORCE_CLIENT_ID=3MVG9...ru7XA
SALESFORCE_CLIENT_SECRET=17DAD...0110F
[email protected]
SALESFORCE_PASSWORD=abcde...KiQ9n
نصيحة: يمكنك وضع هذه المهام المتغيرة في ملف يسمى .env
في content-scripts
الدليل للتطوير والاختبار.
تثبيت التبعيات Node.js.
yarn install
قم بتشغيل البرنامج النصي لتحديث الفئات والمنتجات JSON في content
الدليل.
yarn start
افتح محطة في api
الدليل.
اضبط متغيرات البيئة التالية.
اسم | وصف |
---|---|
ميناء | منفذ الخادم المحلي للاستماع إليه. الافتراضي: 3000 |
Salesforce_instance_url | عنوان URL الأساسي لمثيل Salesforce (نمط https://xx##.salesforce.com ) |
salesforce_api_version | إصدار API Salesforce للاستخدام |
salesforce_token_endpoint | Oauth 2.0 نقطة نهاية الرمز المميز لمثيل Salesforce (وليس المجتمع) |
salesforce_jwks_endpoint | OpenID Connect JSON Web Key Set نقطة نهاية لمجتمع Salesforce Lightning |
Salesforce_issuer_url | عنوان URL المصدر مدرج في رمز الهوية الصادر عن Salesforce |
salesforce_client_id | مفتاح المستهلك للتطبيق المتصل (تم نسخه من قبل من عرض التطبيق) |
salesforce_client_secret | سر المستهلك للتطبيق المتصل (تم نسخه من قبل من عرض التطبيق) |
salesforce_username | اسم المستخدم لمستخدم التكامل |
Salesforce_password | كلمة مرور مستخدم التكامل + الرمز المميز للأمان (ببساطة تسلسل الاثنين) |
salesforce_price_book_name | خياري. دفتر الأسعار للاستخدام. الافتراضي: "كتاب السعر القياسي" |
Security_cors_origin | عنوان URL الأساسي لتطبيق الويب المسموح به للوصول إلى الخادم. |
مثال:
PORT=4000
SALESFORCE_INSTANCE_URL=https://eu25.salesforce.com
SALESFORCE_API_VERSION=49.0
SALESFORCE_TOKEN_ENDPOINT=https://login.salesforce.com/services/oauth2/token
SALESFORCE_JWKS_ENDPOINT=https://georgwittberger-developer-edition.eu25.force.com/id/keys
SALESFORCE_ISSUER_URL=https://georgwittberger-developer-edition.eu25.force.com
SALESFORCE_CLIENT_ID=3MVG9...ru7XA
SALESFORCE_CLIENT_SECRET=17DAD...0110F
[email protected]
SALESFORCE_PASSWORD=abcde...KiQ9n
SECURITY_CORS_ORIGIN=http://localhost:3000
نصيحة: يمكنك وضع هذه المهام المتغيرة في ملف يسمى .env
في api
الدليل للتطوير والاختبار.
تثبيت التبعيات Node.js.
yarn install
تشغيل الخادم.
yarn start
افتح محطة في دليل جذر المشروع.
اضبط متغيرات البيئة التالية.
اسم | وصف |
---|---|
api_url | عنوان URL الأساسي لخادم API |
logout_url | خياري. url صفحة تسجيل عنوان URL لمجتمع Salesforce Lightning |
OAuth2_Authorize_endpoint | Oauth 2.0 ترخيص نقطة نهاية مجتمع Salesforce Lightning |
OAUTH2_USERINFO_ENDPOINT | معلومات المستخدم نقطة نهاية خادم API |
OAUTH2_CLIENT_ID | مفتاح المستهلك للتطبيق المتصل (تم نسخه من قبل من عرض التطبيق) |
OAUTH2_SCOPES | Oauth 2.0 نطاقات لطلبها أثناء المصادقة ، مفصل الفاصلة |
مثال:
API_URL=http://localhost:4000
LOGOUT_URL=https://georgwittberger-developer-edition.eu25.force.com/s/logout
OAUTH2_AUTHORIZE_ENDPOINT=https://georgwittberger-developer-edition.eu25.force.com/services/oauth2/authorize
OAUTH2_USERINFO_ENDPOINT=http://localhost:4000/userinfo
OAUTH2_CLIENT_ID=3MVG9...ru7XA
OAUTH2_SCOPES=openid,id
نصيحة: يمكنك وضع هذه المهام المتغيرة في ملف يسمى .env
في دليل جذر المشروع للتطوير والاختبار.
ملاحظة: إذا لم يتم توفير متغير LOGOUT_URL
، فسيتم إعادة توجيه المستخدمين إلى صفحة تسجيل الدخول على موقع الويب فورًا دون جولة خارجية.
تثبيت التبعيات Node.js.
yarn install
إما إطلاق خادم التطوير الذي يقدم إعادة تحميل حي ...
yarn dev
... أو إنشاء ملفات HTML الثابت أولاً ثم تقدم هذه الملفات من dist
Directory.
yarn generate
yarn start
افتح متصفحك على http: // localhost: 3000
رخصة معهد ماساتشوستس للتكنولوجيا