//native
type Pinterest = {
token: string;
};
/**
* List accounts with access to an audience owned by a business
* List all ad accounts and/or businesses that have access to a specific audience.
The audience must either be owned by an ad account in the requesting business, or it must have been shared with the requesting business.
If the requesting business is not the owner of the audience, only ad accounts owned by the requesting business will be returned.
*/
export async function main(
auth: Pinterest,
business_id: string,
audience_id: string | undefined,
account_type: "AD_ACCOUNT" | "BUSINESS_ACCOUNT" | undefined,
page_size: string | undefined,
bookmark: string | undefined,
) {
const url = new URL(
`https://api.pinterest.com/v5/businesses/${business_id}/audiences/shared/accounts`,
);
for (const [k, v] of [
["audience_id", audience_id],
["account_type", account_type],
["page_size", page_size],
["bookmark", bookmark],
]) {
if (v !== undefined && v !== "" && k !== undefined) {
url.searchParams.append(k, v);
}
}
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: "Bearer " + auth.token,
},
body: undefined,
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 536 days ago