2016-08-22 3 views
2

Я знаю, что я могу сохранить состояние надстройки для каждого документа, используя document.settings.Сохранение состояния надстройки OfficeJS во всех документах?

Есть ли способ сохранить состояние (например, активную лицензию) для документов для одного и того же надстройки?

ответ

2

Как вы можете сохранить состояние пользователя, зависит от ваших потребностей.

Если вы хотите отслеживать для машины состояние Вы можете сохранить данные в HTML5 Local Storage.

Если вы хотите отследить для пользовательских состояний для пользователей с подпиской (независимо от того, какую машину или документ они используют), вы должны сохранить их идентификатор пользователя и состояние в своей базе данных. Для моей собственной надстройки, я реализовал эту конструкцию с Firebase:

function readUserStateAsync(customerId, callback){ 
    var myUserReference = firebase.database().ref("myCustomers/" + customerId); 
    myUserReference.once('value').then(function(userState) { 
     callback(userState.val()); 
    }); 
} 

function writeUserStateAsync(customerId, userState, callback){ 
    var myUserReference = firebase.database().ref("myCustomers"); 
    myUserReference.child(customerId).set(userState, function(){ callback("success"); }); 
} 

-Michael Сандерс, руководитель программы для офиса надстроек

1

Чтобы добавить к ответу Майкла Сондерса: вы можете также получить уникальный идентификатор для зарегистрированного пользователя Office (или, более конкретно, идентификатор пользователя, который приобрел надстройку): https://msdn.microsoft.com/en-us/library/office/jj164035.aspx

+0

Я прочитал эту сложную страницу, но есть способ просто получить уникальный идентификатор пользователя, используя JavaScript, поэтому я могу отправить его на свой сервер? Моя цель - хранить информацию о пользователе на моем сервере, чтобы пользователь мог использовать информацию для разных документов и хостов, если у них установлена ​​надстройка. Я бы предпочел не требовать дополнительного входа в систему. –

+1

@ExcelAnalyst, поле «cid» https://msdn.microsoft.com/en-us/library/office/jj163880.aspx является * разумным * хорошим значением для использования. Однако есть несколько оговорок. a) Иногда это может быть пустым (если надстройка была куплена от имени организации или если пользователь каким-то образом не подписал контракт с учетной записью Microsoft). б) не гарантируется, что он останется неизменным навсегда (это гарантированный идентификатор, подтвержденный валидацией, тогда как cid может когда-нибудь измениться, если алгоритм хеширования изменится). Но, когда он не пуст, это довольно хороший показатель того же пользователя. –

+1

PS: Чтобы быть ясным, ** обратное ** последнего утверждения было бы неверным. I.e, разные значения cid НЕ обязательно означают разных пользователей (могут быть разные хэши одного и того же пользователя в течение достаточно длительного периода времени). Но то же самое значение CID - я думаю - будет [почти] всегда означать одного и того же пользователя. Однако, если вам нужна гарантия, вам нужно будет использовать проверку на стороне сервера. –

Смежные вопросы