Retrieve Message Attachments
How to identify and retrieve message attachments.
Overview
Message webhook payloads don't currently include attachment URLs. This article explains how to identify and use the attachment URL in the conversation post to view or retrieve the attachment.
How to Retrieve Message Attachments
To identify and retrieve message attachments, follow the steps below.
- Retrieve the conversation posts.
- If relying on a Webhook payload, use the
postId
from the webhook to locate the message and itsattachments.attachmentURL
.
- If relying on a Webhook payload, use the
curl 'https://open-api.guesty.com/v1/communication/conversations/{conversationId}/posts' \
--header 'Authorization: Bearer {ACCESS_TOKEN}'
// Replace with your actual values
const conversationId = '{conversationId}';
const accessToken = '{ACCESS_TOKEN}';
// Construct the URL
const url = `https://open-api.guesty.com/v1/communication/conversations/${conversationId}/posts`;
// Fetch options
const options = {
method: 'GET',
headers: {
'Authorization': `Bearer ${accessToken}`
}
};
// Make the request
fetch(url, options)
.then(response => {
// Check if the response is successful
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json(); // or response.text() depending on the expected response type
})
.then(data => {
// Handle the response data
console.log(data);
})
.catch(error => {
// Handle any errors
console.error('There was a problem with the fetch operation:', error);
});
// Async/Await version
async function fetchConversationPosts() {
try {
const response = await fetch(url, options);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
console.log(data);
} catch (error) {
console.error('There was a problem with the fetch operation:', error);
}
}
<?php
// Replace with your actual values
$conversationId = '{conversationId}';
$accessToken = '{ACCESS_TOKEN}';
// Construct the URL
$url = "https://open-api.guesty.com/v1/communication/conversations/{$conversationId}/posts";
// Initialize cURL session
$ch = curl_init();
// Set cURL options
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $accessToken
]
]);
// Send the request and get the response
$response = curl_exec($ch);
// Check for errors
if (curl_errno($ch)) {
echo 'cURL error: ' . curl_error($ch);
} else {
// Decode the JSON response
$data = json_decode($response, true);
// Process the data
print_r($data);
}
// Close cURL session
curl_close($ch);
import requests
# Replace with your actual values
conversation_id = '{conversationId}'
access_token = '{ACCESS_TOKEN}'
# Construct the URL
url = f'https://open-api.guesty.com/v1/communication/conversations/{conversation_id}/posts'
# Prepare the headers
headers = {
'Authorization': f'Bearer {access_token}'
}
try:
# Make the GET request
response = requests.get(url, headers=headers)
# Raise an exception for HTTP errors
response.raise_for_status()
# Parse the response
data = response.json()
# Process the data
print(data)
except requests.exceptions.RequestException as e:
# Handle any request-related errors
print(f'Error occurred: {e}')
- Generate a temporary download link using the
attachmentURL
in the following API request (template). You can also retrieve multiple attachments by adding etrakeys
to your query.
curl --globoff 'https://open-api.guesty.com/v1/communication/conversations/get-attachments?keys[]={URL}&keys[]={URL}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}'
// Replace these with your actual values
const accessToken = '{YOUR_ACCESS_TOKEN}';
const url1 = '{URL_1}';
const url2 = '{URL_2}';
// Construct the URL with query parameters
const url = new URL('https://open-api.guesty.com/v1/communication/conversations/get-attachments');
url.searchParams.append('keys[]', url1);
url.searchParams.append('keys[]', url2);
// Fetch options
const options = {
method: 'GET',
headers: {
'Authorization': `Bearer ${accessToken}`
}
};
// Make the request
fetch(url, options)
.then(response => {
// Check if the response is successful
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json(); // or response.text() depending on the expected response type
})
.then(data => {
// Handle the response data
console.log(data);
})
.catch(error => {
// Handle any errors
console.error('There was a problem with the fetch operation:', error);
});
<?php
// Replace these with your actual values
$accessToken = '{YOUR_ACCESS_TOKEN}';
$url1 = '{URL_1}';
$url2 = '{URL_2}';
// Prepare the URL with query parameters
$url = "https://open-api.guesty.com/v1/communication/conversations/get-attachments?" .
http_build_query([
'keys[]' => [$url1, $url2]
]);
// Initialize cURL session
$ch = curl_init();
// Set cURL options
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $accessToken
]
]);
// Send the request and get the response
$response = curl_exec($ch);
// Check for errors
if (curl_errno($ch)) {
echo 'cURL error: ' . curl_error($ch);
}
// Close cURL session
curl_close($ch);
// Process the response
echo $response;
import requests
# Replace these with your actual values
access_token = '{YOUR_ACCESS_TOKEN}'
url1 = '{URL_1}'
url2 = '{URL_2}'
# URL for the API endpoint
url = 'https://open-api.guesty.com/v1/communication/conversations/get-attachments'
# Prepare the query parameters
params = {
'keys[]': [url1, url2]
}
# Prepare the headers
headers = {
'Authorization': f'Bearer {access_token}'
}
try:
# Make the GET request
response = requests.get(url, params=params, headers=headers)
# Raise an exception for HTTP errors
response.raise_for_status()
# Parse the response
data = response.json() # or response.text() depending on the response type
# Process the data
print(data)
except requests.exceptions.RequestException as e:
# Handle any request-related errors
print(f'Error occurred: {e}')
Updated 3 days ago