2014-05-23 5 views
2

Avec les récentes nouvelles que ScriptDB est obsolète, je suis à la recherche d'un remplacement approprié. Mon cas d'utilisation particulier est que j'utilise Google Apps Script sous Google Forms pour traiter et stocker des données pertinentes pour la fonction du formulaire. J'ai utilisé le guide de migration de Google (link) et j'essaie de connecter un script Google Apps exécuté sous un formulaire Google à une base de données Parse (link). J'ai essayé les deux méthodes répertoriées dans le guide de migration (URL Fetch Service et ParseDB Library), et je n'arrive pas à fonctionner correctement. J'ai été en mesure d'écrire dans la base de données Parse en utilisant ParseDB, mais la fonction de requête ne fonctionne pas comme prévu. J'ai également essayé d'utiliser la librairie parseCom depuis le site Excel Liberation (désolé, je n'ai apparemment plus de liens pour ce post), mais ça ne marchait pas très bien non plus. Je suis surtout intéressé par l'utilisation du service URL Fetch de Google pour me connecter à une base de données Parse, qui semble être mon option la plus flexible (ie me permettre de partager des données entre des formulaires - quelque chose que je ne pouvais vraiment pas faire avec scriptDB), mais j'ai l'impression d'être dans la tête juste un peu. Je suis ouvert à d'autres options aussi. Merci d'avance!Connexion de Google Apps Script à une base de données Parse (remplacement de ScriptDB)

+0

Quels sont les problèmes spécifiques à la bibliothèque ParseDB? –

+0

J'ai été capable d'utiliser la bibliothèque ParseDB pour ajouter des éléments à la base de données et pour compter le nombre d'éléments dans la base de données. Cependant, db.query ne fonctionnait pas comme prévu avec ParseDB - il renvoyait pas mal de HTML qui ne semblait pas indiquer (du moins pour moi) quel était le problème. – jcastle0

+0

À quoi ressemblait votre requête? –

Répondre

-1

Je suis également à la recherche de cela.

En tant que magasin temporaire, ScriptDb a été très utile. Les feuilles n'ont tout simplement pas l'élégance du beau codage comme dans ScriptDb

0

J'ai le même problème de 'requête' en utilisant la base de données MongoLab comme excusé-demandé here. Je pensais que Parse pourrait fonctionner comme une alternative, mais ensuite j'ai vu ce post ayant le même problème de 'requête'.

Si vous exécutez votre requête directement depuis le navigateur vers Parse, cela fonctionnera probablement très bien, tout comme pour la base de données MongoLab.

Par conséquent, je soupçonne fortement que le problème est dans la fonction URLFetchApp.fetch() elle-même, pas dans les fonctions de base de données Parse (ni MongoLab).

+0

Je peux interroger MongoLab avec UrlFetchApp.fetch() très bien. Je n'arrive pas à l'écrire sur le db MongoLab. Il suffit de récupérer cette URL ci-dessous avec les variables correspondant à ce qui est dans votre instance. var allDocUrl = 'https://api.mongolab.com/api/1/databases/' + db + '/ collections /' + collection + '? ApiKey =' + apiKey; – Stan

+0

Votre URL ci-dessus renvoie la totalité de la collection (ou table); ce n'est pas une requête, telle que: var url = 'https://api.mongolab.com/api/1/databases/my-db/collections/my-coll?q={"active ": true} & apiKey = '; var oDataObject = JSON.parse (UrlFetchApp.fetch (url) .getContentText()); –

+0

La partie'q 'est l'objet de requête json que UrlFetchApp n'accepte pas comme argument d'entrée de fetch(). –

0

Voici ce que j'ai trouvé être le meilleur moyen d'interroger les résultats en utilisant UrlFetchApp et Parse.

function query(key,value) { 
    var properties = getKeys(); 
    var appId = properties.appId; 
    var restApi = properties.restApi; 
    var class = 'TestObject'; 
    var url = 'https://api.parse.com/1/classes/' + class; 

    var query = 'where={"' + key + '":"' + value + '"}' 

    var encoded = encodeURIComponent(query); 
    var queryUrl = url + '?' + encoded; 

    var options = { 
    "method" : "get", 
    "headers" : { 
     "X-Parse-Application-Id": appId, 
     "X-Parse-REST-API-Key": restApi, 
    } 
    } 

    var data = UrlFetchApp.fetch(queryUrl, options); 
    return data; 
} 
+0

Merci, je vais tester ça quand j'ai une chance! – jcastle0

Questions connexes