J'ai écrit un script Google personnalisé qui apporte un objet pour moi et j'aimerais pouvoir l'appeler et l'attribuer à une variable qui est ensuite utilisée pour afficher des données sur un site Web.
HTML Header : strong> p> fichier de scripts Google: strong> p> Sortie de scripts Google ( Utilisation de l'extension de chrome View JSON): p> Il s'agit d'un lien public avec l'objet / les données que je veux dessus (le même objet indiqué ci-dessus): application Web: https://script.google.com/macros/s/AKfycbzsyQNJwDvQc5SvNGEDZZOoNI3XxNar9PA9sRucZx7mgzfWpFQ/exec Donc, fondamentalement, quiconque l'utilise devrait pouvoir y accéder. J'ai juste besoin d'un moyen d'attribuer ces données à une variable JS locale. Le script Google Feuilles est publié comme application Web. Si je ne me trompe pas, il y a un réglage pour permettre à quiconque, même anonyme d'y accéder. P> var infected_data = {
cn: "83",
th: "0",
mo: "0",
au: "0",
sg: "0",
tw: "0",
us: "0",
jp: "0",
my: "0",
kr: "0",
fx: "0",
vn: "0",
kh: "0",
ca: "0",
ci: "0",
np: "0",
lk: "0",
};
3 Réponses :
Vous avez probablement des problèmes avec l'appel d'être asynchrones, ce qui signifierait que vous lisez les données avant qu'il ne soit réellement renvoyé des serveurs de Google. Essayez d'utiliser promesses code> et le
FETCH code> API
const url = "https://script.google.com/macros/s/AKfycbzsyQNJwDvQc5SvNGEDZZOoNI3XxNar9PA9sRucZx7mgzfWpFQ/exec";
// Declare an async function
const getData = async () => {
// Use the await keyword to let JS know this variable has some latency so it should wait for it to be filled
// When the variable is fetched, use the .then() callback to carry on
const DataJSON = await fetch(url).then(response =>
response.json()
).then(parsedResponse => parsedResponse)
return await DataJSON
};
console.log(await getData())
Jetez un coup d'œil à la poste mise à jour, c'est ce que j'obtiens dans la console. N'est toujours pas semblable de donner les données, ou peut-être que c'est juste dans un autre format étrange.
Oups, ok je vois l'objet avec toutes ses données !!! Doux! Cela semble fonctionner bien. Maintenant, le seul problème à laquelle je pense est qu'il n'est pas attribué correctement à Var infecté_data. Edit: J'ai oublié, les valeurs doivent être des chaînes, pas des chiffres. Y a-t-il un moyen rapide et facile de les convertir.
Et comment puis-je accéder à l'objet à l'intérieur de la promesse?
En supposant que les données ne soient pas sensibles, vous pouvez utiliser JSONP pour contourner Cors CORS:
<script>function infect(data){ infectedData = data }</script> <script src="URL_OF_YOUR_SCRIPT"></script>
Répondre à la question pour convertir les entiers en chaînes:
Essayez quelque chose comme ceci:
Envoyer JSON est le moyen le plus simple.
Quelque chose comme ça? :