导入
查找事件
学习如何使用Ticketmaster的Discovery API查找和筛选事件。
...
事件端点
代码示例
1https://app.ticketmaster.com/discovery/v2/events
| 参数 | 类型 | 分类 | 描述 |
|---|---|---|---|
| id | string | 可选 | 如果提供,搜索结果将按事件 ID 进行过滤。 |
| keyword | string | 可选 | 用于搜索的关键字。 |
| attractionId | string | 可选 | 如果提供,搜索结果将按演出者 ID 进行过滤。 |
| venueId | string | 可选 | 如果提供,搜索结果将按场馆 ID 进行过滤。 |
| startDateTime | string | 可选 | 如果提供,搜索结果将返回开始日期在此日期之后的活动。 |
| endDateTime | string | 可选 | 如果提供,搜索结果将返回开始日期在此日期之前的活动。 |
| size | number | 可选 | 每页返回的结果数量。默认值为 20。 |
| page | number | 可选 | 返回搜索结果的页码。默认值为 0。 |
| sort | string | 可选 | 搜索结果的排序方式。允许的值包括:name,asc、name,desc、date,asc、date,desc、relevance,asc、relevance,desc、distance,asc、name,date,asc、name,date,desc、date,name,asc、date,name,desc、distance,date,asc、onSaleStartDate,asc、id,asc、venueName,asc、venueName,desc、random。默认值为 relevance,desc。 |
| classificationId | array[string] | 可选 | 如果提供,搜索结果将按分类 ID 进行过滤,即任何类别、流派、子流派、类型或子类型的 ID。支持负向过滤,格式为 -。负向过滤可能导致性能下降。 |
1// 导入所需库 2import fetch from "node-fetch"; 3 4// 定义事件端点 URL 5const endpointUrl = new URL("https://app.ticketmaster.com/discovery/v2/events"); 6 7// 定义查询参数 8const queryParameters = new URLSearchParams({ 9 apikey: "{{API_KEY}}", 10}); 11 12// 设置 API 调用选项 13const options = { 14 method: "GET", 15}; 16 17// 定义函数以发起 API 调用并搜索事件 18async function searchForEvents() { 19 try { 20 endpointUrl.search = queryParameters; 21 const response = await fetch(endpointUrl, options); 22 printResponse(response); 23 } catch (error) { 24 printError(error); 25 } 26} 27 28// 调用函数搜索事件 29searchForEvents();
1import fetch from "node-fetch"; 2 3const endpointUrl = new URL("https://app.ticketmaster.com/discovery/v2/events"); 4 5// 定义包含 size 参数的查询参数 6const queryParameters = new URLSearchParams({ 7 apikey: "{{API_KEY}}", 8 size: 5, 9}); 10 11const options = { 12 method: "GET", 13}; 14 15async function searchForEvents() { 16 try { 17 endpointUrl.search = queryParameters; 18 const response = await fetch(endpointUrl, options); 19 printResponse(response); 20 } catch (error) { 21 printError(error); 22 } 23} 24 25searchForEvents();
1import fetch from "node-fetch"; 2 3const endpointUrl = new URL("https://app.ticketmaster.com/discovery/v2/events"); 4 5// 定义包含 id 参数的查询参数 6const queryParameters = new URLSearchParams({ 7 apikey: "{{API_KEY}}", 8 id: "{{EVENT_ID}}", 9}); 10 11const options = { 12 method: "GET", 13}; 14 15async function searchForEvents() { 16 try { 17 endpointUrl.search = queryParameters; 18 const response = await fetch(endpointUrl, options); 19 printResponse(response); 20 } catch (error) { 21 printError(error); 22 } 23} 24 25searchForEvents();
| 属性 | 类型 | 描述 |
|---|---|---|
| _embedded | object | _embedded 对象包含一个名为 events 的属性,其值为一个对象数组,每个对象代表一个事件。默认情况下,事件按相关性降序排列。 |
| _links | object | _links 对象包含指向搜索结果中第一页、下一页和最后一页的链接,以及当前页面的链接。 |
| page | object | page 对象包含关于搜索结果分页的信息,包括每页大小、总结果数、总页数和当前页码。 |
我们知道,搜索结果通常以多页形式返回。
单次 API 调用返回的响应对象代表搜索结果中的一页——默认为第一页。每页的结果数量由查询参数 size 定义,默认值为 20。

1import fetch from "node-fetch"; 2 3const endpointUrl = new URL("https://app.ticketmaster.com/discovery/v2/events"); 4 5const queryParameters = new URLSearchParams({ 6 apikey: "{{API_KEY}}", 7}); 8 9const options = { 10 method: "GET", 11}; 12 13async function getNextPage(currentPage) { 14 try { 15 const currentResponse = await currentPage.json(); 16 17 // 从 _links 属性中获取下一页的链接 18 const nextUrl = new URL(`https://app.ticketmaster.com${currentResponse["_links"]["next"]["href"]}`); 19 20 // 将 apikey 参数添加到查询参数中 21 nextUrl.searchParams.append("apikey", "{{API_KEY}}"); 22 23 // 获取下一页的搜索结果 24 const response = await fetch(nextUrl, options); 25 printResponse(response); 26 } catch (error) { 27 printError(error); 28 } 29} 30 31async function searchForEvents() { 32 try { 33 endpointUrl.search = queryParameters; 34 const response = await fetch(endpointUrl, options); 35 getNextPage(response); 36 } catch (error) { 37 printError(error); 38 } 39} 40 41searchForEvents();