with Google Maps (Places API) and Sinch MessageMedia?
Retrieves detailed information for a specific place using its Place ID. See the documentation
Searches for places based on location, radius, and optional filters like keywords, place type, or name. See the documentation
The Google Maps (Places API) offers detailed information about physical locations, including places of interest, reviews, and other metadata. In Pipedream, you can leverage this API to create dynamic workflows that respond to location data. Whether you're building apps that track asset locations, automate location-based alerts, or provide users with local info, integrating with Google Maps can add a powerful spatial context to your services.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
google_maps_platform: {
type: "app",
app: "google_maps_platform",
}
},
async run({steps, $}) {
return await axios($, {
method: "post",
url: `https://maps.googleapis.com/maps/api/place/findplacefromtext/json`,
params: {
key: `${this.google_maps_platform.$auth.api_key}`,
input: `Museum of Contemporary Art Australia`,
inputtype: `textquery`,
},
})
},
})
import axios from "axios";
import crypto from 'crypto';
export default defineComponent({
props: {
sinch_messagemedia: {
type: "app",
app: "sinch_messagemedia",
}
},
async run({ steps, $ }) {
// Date header in RFC7231 format
const date = new Date().toUTCString();
// Signing string (No Content-MD5 needed as this is a GET request with no body)
const requestLine = 'GET /v1/messaging/numbers/sender_address/addresses/ HTTP/1.1';
const signingString = `Date: ${date}\n${requestLine}`;
// Creating HMAC-SHA1 hash
const hmac = crypto.createHmac('sha1', this.sinch_messagemedia.$auth.api_secret);
hmac.update(signingString);
// Base64 encode the hash
const signature = hmac.digest('base64');
// Prepare authentication header and make the request
const authHeader = `hmac username="${this.sinch_messagemedia.$auth.api_key}", algorithm="hmac-sha1", headers="Date request-line", signature="${signature}"`;
const response = await axios({
method: 'get',
url: `${this.sinch_messagemedia.$auth.api_url}/v1/messaging/numbers/sender_address/addresses/`,
headers: {
'Date': date,
'Authorization': authHeader,
'Accept': 'application/json'
}
});
return response.data;
},
})