Beste allemaal,
Ik hoop dat dit het juiste topic is.
Ik probeer met behulp van wat code om prijzen uit dexscreener.com te krijgen. Nu heb ik op reddit wat gevonden maar dat werkt soms wel en soms niet.
Nu heb ik in de API documentatie van dexscreener gevonden dat je de token informatie kan benaderen via hun api webadres gecombineerd met een contract. Dat ziet er dan als volgt uit:
https://api.dexscreener.i...31056cc905987b77b1044d259
De tekst die je dan krijgt is volgens mij in JSON en ik wil de priceUsd data hebben.
De originele code zag er zo uit (credits aan https://www.reddit.com/user/RemcoE33/:
Echter die had de volgende URL formaat nodig: https://dexscreener.com/b...31056cc905987b77b1044d259
Ik heb het volgende geprobeerd aan te passen:
alleen dat werkt niet, ik denk omdat de const hash nu niet klopt met de exec(). Wat moet ik precies aanpassen zodat de
Of mis ik nog meer en kan ik met de rest van de code ook niet de "priceUsd" uit dat API webadres filteren?
Ik hoop dat dit het juiste topic is.
Ik probeer met behulp van wat code om prijzen uit dexscreener.com te krijgen. Nu heb ik op reddit wat gevonden maar dat werkt soms wel en soms niet.
Nu heb ik in de API documentatie van dexscreener gevonden dat je de token informatie kan benaderen via hun api webadres gecombineerd met een contract. Dat ziet er dan als volgt uit:
https://api.dexscreener.i...31056cc905987b77b1044d259
De tekst die je dan krijgt is volgens mij in JSON en ik wil de priceUsd data hebben.
De originele code zag er zo uit (credits aan https://www.reddit.com/user/RemcoE33/:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
| /** * Returns DexScreener USD Price * * @param {array} urls - Insert the DexScreener url or range. * @param {boolean} baseTokenSymbol - true or false to return the base token symbol * @param {array} values - {"priceUsd", "volumeUsd", "blockTimestamp", "type"} * @param {boolean} headers - true or false * @return {array} Price. * @customfunction */ function DEX(urls, baseTokenSymbol = false, values = [], headers) { if (!Array.isArray(urls)) { urls = [urls] }; if (!Array.isArray(values)) { values = [values] }; values = values.flat(); const alterdUrls = urls.flat().filter(url => url != "").map(url => { const hash = /\.com\/(.*?)$/g.exec(url)[1]; const dataUrl = `https://io4.dexscreener.io/u/trading-history/recent/${hash}`; return dataUrl; }) const responses = UrlFetchApp.fetchAll(alterdUrls); const output = []; const keys = []; responses.forEach((res, i) => { const data = JSON.parse(res.getContentText()); const tradingHistory = data.tradingHistory[0]; const tempOutput = []; if (baseTokenSymbol) { if (i == 0) { keys.push("tokenSymbol") } tempOutput.push(data.baseTokenSymbol); }; if (values.length == 0) { if (i == 0) { keys.push(...Object.keys(tradingHistory)) } Object.values(tradingHistory).forEach(value => { if (Number.isNaN(Number(value))) { tempOutput.push(value) } else { tempOutput.push(Number(value)) } }) } else { Object.keys(tradingHistory).forEach(key => { if (values.includes(key)) { if (i == 1) { keys.push(key) } if (Number.isNaN(Number(tradingHistory[key]))) { tempOutput.push(tradingHistory[key]) } else { tempOutput.push(Number(tradingHistory[key])) } } }); } output.push(tempOutput); }) if (headers) { output.unshift(keys); return output; } return output; } |
Echter die had de volgende URL formaat nodig: https://dexscreener.com/b...31056cc905987b77b1044d259
Ik heb het volgende geprobeerd aan te passen:
code:
1
2
3
4
| const alterdUrls = urls.flat().filter(url => url != "").map(url => { const hash = /\.com\/(.*?)$/g.exec(url)[1]; const dataUrl = `https://api.dexscreener.io/latest/dex/tokens/${hash}`; return dataUrl; |
alleen dat werkt niet, ik denk omdat de const hash nu niet klopt met de exec(). Wat moet ik precies aanpassen zodat de
code:
het contractnummer filtert uit https://dexscreener.com/b...31056cc905987b77b1044d259?1
| const hash |
Of mis ik nog meer en kan ik met de rest van de code ook niet de "priceUsd" uit dat API webadres filteren?