Introduzione
Casi d’uso della paginazione
max_results
per una richiesta. Iterare le richieste con i token di paginazione consente di recuperare tutti i risultati. Quando una risposta viene restituita senza un valore next_token
, si può presumere che tutti i risultati siano stati paginati. La paginazione non va usata per il polling. Per ottenere i risultati più recenti rispetto a una richiesta precedente, consultare il polling con since_id
.
Per scorrere i risultati di una richiesta: La paginazione offre opzioni direzionali per navigare tra i risultati di una richiesta, utilizzando i valori next_token
e previous_token
presenti nelle risposte. Questi token possono essere impostati come pagination_token
nella richiesta successiva per passare alla pagina successiva o precedente dei risultati.
Definizioni dei token di paginazione
next_token
- Stringa opaca restituita all’interno dell’oggetto meta nella risposta sugli endpoint che supportano la paginazione. Indica che sono disponibili altri risultati e può essere usata come parametropagination_token
nella richiesta successiva per ottenere la pagina seguente di risultati. L’ultima pagina di risultati non conterrà unnext_token
.previous_token
- Stringa opaca restituita all’interno dell’oggetto meta nella risposta sugli endpoint che supportano la paginazione. Indica che è disponibile una pagina precedente di risultati e può essere impostata come parametropagination_token
nella richiesta successiva per ottenere la pagina precedente di risultati.pagination_token
- Parametro utilizzato nelle richieste di paginazione. Impostalo al valore dinext_token
per la pagina successiva di risultati. Impostalo al valore diprevious_token
per la pagina precedente di risultati.
Fondamenti della paginazione
- Gli endpoint che utilizzano la paginazione rispondono a una richiesta iniziale con la prima pagina di risultati e, se sono disponibili pagine aggiuntive, forniscono un
next_token
all’interno dell’oggetto meta nella risposta JSON. Per ricevere tutti i risultati, ripetere questo processo finché nella risposta non è più incluso alcunnext_token
.- I risultati vengono restituiti in ordine cronologico inverso. Questo vale sia all’interno delle singole pagine sia tra più pagine:
- Il primo Post nella prima risposta sarà il più recente.
- L’ultimo Post nell’ultima risposta sarà il più vecchio.
- Il parametro di richiesta
max_results
consente di impostare il numero di Post restituiti per pagina. Sono previsti un valore predefinito e un valore massimo permax_results
. - Ogni implementazione della paginazione comporta l’estrazione dei token dal payload della risposta, che possono essere utilizzati nelle richieste successive.
- In alcune circostanze, potresti ottenere meno elementi del valore di
max_results
per pagina. Non dare per scontato che i risultati per pagina coincidano sempre con il valore del parametromax_results
. - I modi migliori per ottenere risultati completi con la paginazione sono usare una logica a loop nel codice di integrazione oppure una libreria che supporti X API v2.
- I risultati vengono restituiti in ordine cronologico inverso. Questo vale sia all’interno delle singole pagine sia tra più pagine:
Esempio di paginazione
max_results
è impostato su 100
e ci sono circa 295 Post creati dall’utente con id 2244994945
(@XDevelopers) tra il 1º gennaio 2019 alle 17:00:00 UTC e il 12 dicembre alle 00:00:00 UTC. Il primo Post nella prima pagina (1337498609819021312
) è il più recente, e l’ultimo Post nella terza pagina dei risultati (1082718487011885056
) è il meno recente.
Richiesta iniziale
Tabella delle sequenze
Prima richiesta | Seconda pagina | Terza pagina | Quarta pagina | |
---|---|---|---|---|
Parametri della richiesta | - max_results = 100 - tweet.fields = created_at - start_time = 2019-01-01T17:00:00Z - end_time = 2020-12-12T01:00:00Z | - max_results = 100 - tweet.fields = created_at - start_time = 2019-01-01T17:00:00Z - end_time = 2020-12-12T01:00:00Z - pagination_token = 7140w | - max_results = 100 - tweet.fields = created_at - start_time = 2019-01-01T17:00:00Z - end_time = 2020-12-12T01:00:00Z - pagination_token = 7140k9 | - max_results = 100 - tweet.fields = created_at - start_time = 2019-01-01T17:00:00Z - end_time = 2020-12-12T01:00:00Z - pagination_token = 71408hi |
Risposta | json { "data": [ { "created_at": "2020-12-11T20:44:52.000Z", "id": "1337498609819021312", "text": "Grazie a tutti coloro che si sono collegati oggi..." }, ... , { "created_at": "2020-05-06T17:24:31.000Z", "id": "1258085245091368960", "text": "Ora è più facile comprendere l’impatto dei Tweet..." } ], "meta": { "oldest_id": "1258085245091368960", "newest_id": "1337498609819021312", "result_count": 100, "next_token": "7140w" } } | json { "data": [ { "created_at": "2020-04-29T17:01:44.000Z", "id": "1255542797765013504", "text": "La nostra community di sviluppatori è ricca di idee stimolanti..." }, ... , { "created_at": "2019-11-21T16:17:23.000Z", "id": "1197549579035496449", "text": "Presto rilasceremo strumenti per..." } ], "meta": { "oldest_id": "1197549579035496449", "newest_id": "1255542797765013504", "result_count": 100, "next_token": "7140k9", "previous_token": "77qp8" } } | json { "data": [ { "created_at": "2019-11-21T16:17:23.000Z", "id": "1197549578418941952", "text": "Sappiamo che alcune persone che ricevono un elevato volume di risposte possono..." }, ... , { "created_at": "2019-01-08T19:19:37.000Z", "id": "1082718487011885056", "text": "Aggiornamenti agli embed Grid..." } ], "meta": { "oldest_id": "1082718487011885056", "newest_id": "1197549578418941952", "result_count": 95, "next_token": "71408hi", "previous_token": "77qplte" } } | json { "meta": { "result_count": 0, "previous_token": "77qpw8l" } } |
Azioni da intraprendere per la prossima richiesta | Per ottenere la pagina successiva, prendi il valore di next_token direttamente dalla risposta (7140w ) e impostalo come pagination_token per la chiamata successiva. | Per continuare a ottenere tutti i risultati: prendi il valore di next_token direttamente dalla risposta (7140k9 ) e impostalo come pagination_token per la chiamata successiva. Per passare alla pagina precedente: prendi il valore di previous_token direttamente dalla risposta (77qp8 ) e impostalo come pagination_token per la chiamata successiva. | Per continuare a ottenere tutti i risultati: prendi il valore di next_token direttamente dalla risposta (71408hi ) e impostalo come pagination_token per la chiamata successiva. Per passare alla pagina precedente: prendi il valore di previous_token direttamente dalla risposta (77qplte ) e impostalo come pagination_token per la chiamata successiva. | Nota che non è presente alcun next_token , il che indica che tutti i risultati sono stati ricevuti. Per passare alla pagina precedente: prendi il valore di previous_token direttamente dalla risposta (77qpw8l ) e impostalo come pagination_token per la chiamata successiva. |