веб-сервисы Amazon — нумерация идентификаторов Cognito в AWS PHP SDK v3

Как получить все записи, когда результат разбит на страницы, используя AWS PHP SDK v3? У меня есть следующий код:

require_once 'vendor/autoload.php';

$cognitoIdentityClient = new Aws\CognitoIdentity\CognitoIdentityClient([
'region' => 'eu-west-1',
'version' => '2014-06-30',
'credentials' => [
'key' => '**************',
'secret' => '***************',
],
]);

$identities = $cognitoIdentityClient->getPaginator('ListIdentities', [
'IdentityPoolId' => 'eu-west-1:****************************',
]);

который выглядит так, как будто он должен работать, но выдает ошибку:

Fatal error: Uncaught UnexpectedValueException: There is no ListIdentities paginator defined for the cognito-identity service. in /path/to/vendor/aws/aws-sdk-php/src/Api/Service.php:363
Stack trace:
#0 /path/to/vendor/aws/aws-sdk-php/src/AwsClientTrait.php(23): Aws\Api\Service->getPaginatorConfig('ListIdentities')
#1 /path/to/report.php(24): Aws\AwsClient->getIterator('ListIdentities', Array)
#2 {main}
thrown in /path/to/vendor/aws/aws-sdk-php/src/Api/Service.php on line 363

getPaginator метод существует, но файл data/cognito-identity/2014-06-30/paginators-1.json.php пусто, поэтому никакие пагинаторы не реализованы. я вижу NextToken в ответ, но не понимаю шаблон, чтобы плавно загрузить больше результатов (do (...) {} while (...)?)

0

Решение

Я решил это так:

$identities = [];
$i = $cognitoIdentityClient->listIdentities([
'IdentityPoolId' => IDENTITYPOOLID,
'MaxResults' => 60,
]);
$identities = array_merge($identities, $i->get('Identities'));
while ($nextToken = $i->get('NextToken')) {
$i = $cognitoIdentityClient->listIdentities([
'IdentityPoolId' => IDENTITYPOOLID,
'MaxResults' => 60,
'NextToken' => $nextToken,
]);
$identities = array_merge($identities, $i->get('Identities'));
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]