كيفية مشاركة خصائص المستخدم بين مشاريع Google Apps Script

يستخدم المطورون خدمة الخصائص الخاصة بـ Google Apps Script لتخزين تكوين التطبيق والإعدادات الخاصة بالمستخدم. يتم تحديد نطاق بيانات الخصائص لمستخدم معين، أو مشروع محدد، ولا يمكن مشاركتها بين مشاريع مختلفة.
تستخدم الوظيفة الإضافية لإشعارات نموذج البريد الإلكتروني أيضًا خدمة الخصائص لتخزين القواعد التي يحددها المستخدم. القواعد التي أنشأها المستخدم أ لا يمكن للمستخدم ب الوصول إليها.
ومع ذلك، في بعض الحالات المحددة، قد نرغب في منح حق الوصول إلى بيانات متجرنا لمستخدم آخر حتى يتمكن من البناء على التكوين الحالي بدلاً من الاضطرار إلى إنشاء كل شيء من الصفر.
يتيح خيار الاستيراد والتصدير الجديد للمستخدم تصدير بيانات الخصائص كملف نص عادي يمكن استيراده إلى مخزن الخصائص لمستخدم آخر.
الوصول إلى متجر العقارات
على جانب الخادم (Google Script)، نحدد طريقتين – واحدة لتصدير البيانات كملف JSON والطريقة الأخرى لاستيراد البيانات من مخزن الخصائص الخاص بمستخدم آخر إلى متجرنا الخاص.
/* Choose DocProperties for editor add-ons */
const getStore = () => {
return PropertiesService.getUserProperties();
};
/* Export user settings */
const exportUserData = () => {
const data = getStore().getProperties();
return JSON.stringify(data);
};
/* Import user settings */
const importUserData = (data) => {
const json = JSON.parse(data);
getStore().setProperties(json);
return 'OK';
};
تصدير خصائص المستخدم كملف نصي
لتصدير البيانات، يحتوي ملف HTML على زر تنزيل بسيط يتصل بالخادم، ويجلب البيانات ويسمح للمستخدم بحفظ هذه البيانات كملف نصي على جهاز الكمبيوتر الخاص به.
<p>Export Data</p>
<button onclick="downloadFile();return false;" href="#">Export</button>
<script>
function downloadFile() {
google.script
.withSuccessHandler(function (data) {
var a = document.createElement('a');
var blob = new Blob([data], {
type: 'text/plain',
});
var url = URL.createObjectURL(blob);
a.setAttribute('href', url);
a.setAttribute('download', 'file.txt');
a.click();
})
.exportUserData();
}
</script>
استيراد خصائص المستخدم من ملف نصي
لاستيراد البيانات إلى مخزن الخصائص، يمكن للمستخدم تحميل ملف نصي (JSON) يحتوي على البيانات كأزواج قيمة المفتاح. يمكن قراءة هذه الملفات بسهولة في أي محرر نصوص ويمكنك أيضًا إضافة تعريف خصائص جديدة عن طريق إضافة مفاتيح جديدة إلى ملف JSON.
<p>Import data</p>
<input type="file" id="file" accept="text/plain" />
<script>
document.getElementById('file').addEventListener(
'change',
function (event) {
var file = event.target.files[0];
if (file.type !== 'text/plain') {
window.alert('Unsupported file');
return;
}
var reader = new FileReader();
reader.onload = function (e) {
google.script.run
.withSuccessHandler(function (success) {
window.alert(success);
})
.withFailureHandler(function (err) {
window.alert(err);
})
.importUserData(e.target.result);
};
reader.readAsText(file);
},
false
);
</script>
يتم استخدام File Reader API الخاص بـ JavaScript لقراءة محتويات الملف النصي المحدد. ال onload
يتم تشغيل الحدث عند قراءة الملف بنجاح في الذاكرة.
ال readAsText
ستقوم طريقة File Reader بقراءة الملف كسلسلة ولكن يمكنك أيضًا استخدام readAsDataURL
يجب أن تكون الطريقة ترغب في تحميل الملف بتنسيق Base64 المشفر والذي يمكن فك تشفيره على الخادم.