2017-06-08 2 views
0

J'essaie de publier des données en utilisant des formulaires HTML ou AJAX sur AppsScript joint à une feuille de calcul Google. J'ai eu l'application à l'état que cela fonctionne avec l'application déployée à "tout le monde, même anonyme".Publier des données dans Google Spreadsheet via AppsScript (déploiement privé)

Mais mon but est de créer un script JS ou PHP qui utilisera un compte de service pour authentifier et publier des données dans cette feuille de calcul.

Je ne trouve pas de documentation ou d'exemple utile.

Voici mon code: [HTML]

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<form method="post" action="https://script.google.com/a/macros/domainname/s/AKfycbzVVBWfeffKo7OHdhAtjjgri0ouJ5qIkSjQTpsIISw8/exec"> 
 
    First name:<br> 
 
    <input type="text" name="firstname" value="test1"> 
 
    <br> 
 
    Last name:<br> 
 
    <input type="text" name="lastname" value="test2"> 
 
    <br><br> 
 
    <input type="submit" value="Submit"> 
 
</form> 
 

 
</body> 
 
</html>

[Apps Script]

function doPost(e) { 
 

 
    try { 
 
    var doc  = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var sheet = doc.getSheetByName("Sheet1"); 
 
    
 
    
 
    sheet.getRange(1,1).setValue(JSON.stringify(e.parameters)); 
 
    
 
    } 
 
    catch(error) { 
 
    Logger.log(e); 
 
    } 
 
    finally { 
 
    return; 
 
    } 
 

 
}

J'ai déjà créé le compte de service et h ave le fichier JSON avec clientID, Secrets etc. J'imagine que je dois ajouter le POST à ​​ces données mais je ne suis pas sûr de la façon de le faire, donc Google Apps va l'authentifier.

La raison en est que l'entreprise qui veut cette application ne peut pas activer le partage de documents à tous ceux qui ont le lien pour des raisons de sécurité.

je dois publier avec les paramètres ci-dessous montrent: enter image description here

Si je mets à « Tout le monde au sein de domaine » Je reçois enter image description here

Je veux exécuter mon formulaire en quelque sorte il exécute en tant qu'utilisateur dans ce domaine.

Quelqu'un peut-il aider avec des URL de documentation ou un tutoriel, etc?

Cordialement Matt

Répondre

1

Il n'y a aucune raison d'utiliser les comptes de service dans ce cas, même avec votre restriction.

Publiez l'application pour qu'elle s'exécute comme vous, puis tous les appels de feuille de calcul utiliseront vos informations d'identification et non l'utilisateur qui utilise votre application Web.

De plus, il n'est pas possible d'utiliser oauth à 2 pattes avec des comptes de service dans le script des applications, il ne prend en charge que les périphériques Oauth à 3 pattes.

+0

J'ai mis à jour ma question. Fondamentalement, le «qui a accès à l'application» est le facteur dont j'ai besoin pour obéir. Le compte GAPS ne permet pas de paramétrer ces paramètres sur "Anyone, same anonymous" ou "Anyone" donc si je mets celui-ci "Anyone within domain" alors mon formulaire hébergé sur un serveur n'y a pas accès . Je reçois "Désolé, impossible d'ouvrir le fichier actuellement". – Matt

+0

que voulez-vous dire par "hébergé sur un serveur". l'erreur que vous obtenez est soit un bug de script apps ou peut-être votre domaine gsuite a quelque chose de désactivé dont le GAS a besoin. –

+0

Mon formulaire.html est hébergé sur apache. La façon dont je veux que cela fonctionne est d'envoyer des données POST à ​​la feuille de calcul Google. Je l'ai bien fonctionner si le script est déployé avec un accès à l'application "Anyone, même anonyme". Le problème est que GAPS sur lequel cela devrait fonctionner ne permet pas de partager des scripts de cette façon seulement "Anyone within domain". Je cherche le moyen d'envoyer les données POST comme authentifiées dans ce domaine. – Matt