-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquick-google-api-test.js
More file actions
executable file
·97 lines (80 loc) · 3.04 KB
/
quick-google-api-test.js
File metadata and controls
executable file
·97 lines (80 loc) · 3.04 KB
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/usr/bin/env node
/**
* Quick Google API Key Test
* Usage: node quick-google-api-test.js YOUR_API_KEY_HERE
*/
const https = require('https');
const colors = {
green: '\x1b[32m',
red: '\x1b[31m',
yellow: '\x1b[33m',
blue: '\x1b[34m',
reset: '\x1b[0m',
bold: '\x1b[1m'
};
function log(message, color = colors.reset) {
console.log(`${color}${message}${colors.reset}`);
}
async function makeRequest(url) {
return new Promise((resolve, reject) => {
https.get(url, (res) => {
let data = '';
res.on('data', chunk => data += chunk);
res.on('end', () => {
try {
resolve({
statusCode: res.statusCode,
data: JSON.parse(data)
});
} catch (e) {
resolve({
statusCode: res.statusCode,
data: data
});
}
});
}).on('error', reject);
});
}
async function quickTest(apiKey) {
log(`${colors.bold}${colors.blue}Quick Google API Test${colors.reset}`);
log(`${colors.blue}=====================${colors.reset}\n`);
log(`Testing API Key: ${apiKey.substring(0, 10)}...`);
// Test Geocoding API with a simple address
log(`\n${colors.yellow}Testing Geocoding API...${colors.reset}`);
const geocodeUrl = `https://maps.googleapis.com/maps/api/geocode/json?address=New+York&key=${apiKey}`;
try {
const response = await makeRequest(geocodeUrl);
if (response.data.status === 'OK') {
log(`${colors.green}✓ Geocoding API: Working${colors.reset}`);
} else {
log(`${colors.red}✗ Geocoding API: ${response.data.status} - ${response.data.error_message || 'Unknown error'}${colors.reset}`);
}
} catch (error) {
log(`${colors.red}✗ Geocoding API: Network error - ${error.message}${colors.reset}`);
}
// Test Places API
log(`\n${colors.yellow}Testing Places API...${colors.reset}`);
const placesUrl = `https://maps.googleapis.com/maps/api/place/textsearch/json?query=restaurant&key=${apiKey}`;
try {
const response = await makeRequest(placesUrl);
if (response.data.status === 'OK') {
log(`${colors.green}✓ Places API: Working${colors.reset}`);
} else {
log(`${colors.red}✗ Places API: ${response.data.status} - ${response.data.error_message || 'Unknown error'}${colors.reset}`);
}
} catch (error) {
log(`${colors.red}✗ Places API: Network error - ${error.message}${colors.reset}`);
}
log(`\n${colors.blue}Test complete!${colors.reset}`);
}
// Get API key from command line argument
const apiKey = process.argv[2];
if (!apiKey) {
log(`${colors.red}Usage: node quick-google-api-test.js YOUR_API_KEY_HERE${colors.reset}`);
process.exit(1);
}
quickTest(apiKey).catch(error => {
log(`${colors.red}Error: ${error.message}${colors.reset}`);
process.exit(1);
});