2017-08-22 4 views
1

Il ya quelques jours, j'ai écrit un app qui crée des feuilles de calcul pour mesurer les nids de poule. Hier, j'ai demandé à quelqu'un de tester cette application devant moi, et d'après ce que j'ai vu, après les autres bugs, l'utilisateur a eu un écran de "demande d'accès". Quelques heures plus tard, je suis allé sur Google Sheets sur mon compte et j'ai vu que la feuille générée par l'application a été mise sur mon compte et non sur la leur. Je vais à Gmail et j'ai reçu un courriel disant qu'ils demandaient l'accès à la feuille de calcul.Création d'une feuille Google sur le compte de l'utilisateur final

Comment puis-je le créer sous leur compte ou m'assurer qu'ils ont automatiquement accès à, et éditent le privilège pour cela?

+0

L'application fonctionne-t-elle comme vous ou comme utilisateur? Avez-vous leurs informations de compte, c'est-à-dire que vous utilisez un compte G Suite Business/éducation/à but non lucratif et que l'application ne peut être utilisée que pour un membre du domaine? –

+0

Je pense que l'application fonctionne comme moi. /* Il a été créé sous mon compte */ –

+1

Lorsque vous sélectionnez ** Publier-> Déployer en tant qu'application Web **, quel est le paramètre sous _Exécutez l'application en tant que: _ et quel est le paramètre sous _Qui a accès à l'application: _ La seconde est probablement _Anyone_ ou _Anyone même anonymous_ puisque je peux accéder à l'extrémité avant. Je pense que le premier est vous, car il crée de nouveaux fichiers sous votre compte. –

Répondre

1

Il y a deux choix:

(a) Lors du déploiement de l'application, définissez le paramètre « Exécuter l'application comme » à « l'utilisateur l'accès à l'application Web ». Ensuite, quelle que soit l'application sera sous l'autorisation de cet utilisateur, en particulier, ils posséderont toutes les feuilles de calcul créées par l'application. (B) Exécutez l'application Web comme vous (le développeur), mais ajoutez l'utilisateur en tant qu'éditeur par la méthode addEditor. Une tentative simple serait

function doGet() { 
    var ss = SpreadsheetApp.create("new spreadsheet"); 
    var user = Session.getActiveUser(); 
    ss.addEditor(user); 
    return HtmlService.createHtmlOutput("<h1>Success!</h1>"); 
} 

Cela devrait fonctionner si le développeur et l'utilisateur sont dans le même domaine G Suite. Mais en général cela ne fonctionnera pas, car l'application n'est pas autorisée à connaître l'identité de l'utilisateur: voir documentation. Une solution consiste à demander à l'utilisateur d'entrer son adresse électronique (ajouter un autre champ à votre formulaire pour le collecter) et de l'ajouter en tant qu'éditeur.

ss.addEditor(email);