How to get steam leader board entries from c++

Hi guys!
Help me please.
Question about steam works sdk. How can I get the contents of the leaderboard, all the lines, so that in the game you can show them, for example, in the widget at the end of the game?
The Leaderboard has already been created and it is possible to write and read data through blueprints, but there you can read only the data of one player (yourself), but I need data about all players.

Input data:
-Has own appid
-DefaultEngine.ini configured
-MyProjectName.Build.cs configured:
DynamicallyLoadedModuleNames.Add (“OnlineSubsystemSteam”);
PublicDependencyModuleNames.AddRange (new string [] {“OnlineSubsystem”, “OnlineSubsystemUtils”});
PrivateDependencyModuleNames.Add (“OnlineSubsystem”);
-For testing, I use the AMyPawn class, here are its inclusions:
#include “OnlineAchievementsInterface.h”
#include “OnlineIdentityInterface.h”
#include “OnlineSubsystem.h”
#include “Engine / LocalPlayer.h”
#include “OnlineLeaderboardInterface.h”
#include “OnlineStats.h”

I took a look at the code of the blueprint function “Read leaderboard integer” and tried to implement it in the same way, but get the value around the rank. After which, through the loop, write all the values to a separate int32 array. But the callback function “OnStatsRead” is not called. Below is an example of my code.

void AMyPawn::GetLeaderBoardEntries(FName InStatName){

// Get the online sub system
IOnlineSubsystem* OnlineSub = IOnlineSubsystem::Get();

IOnlineLeaderboardsPtr leaderBoard = OnlineSub->GetLeaderboardsInterface();
if (leaderBoard.IsValid())
{				
	StatName = InStatName;
	leaderBoardReadObject = MakeShareable(new FOnlineLeaderboardRead());
	leaderBoardReadObject->LeaderboardName = StatName;
	leaderBoardReadObject->SortedColumn = StatName;
	new (leaderBoardReadObject->ColumnMetadata) FColumnMetaData(StatName, EOnlineKeyValuePairDataType::Int32);

	// Register the completion callback
	LeaderboardReadCompleteDelegate = FOnLeaderboardReadCompleteDelegate::CreateUObject(this, &AMyPawn::OnStatsRead);
	LeaderboardReadCompleteDelegateHandle = leaderBoard->AddOnLeaderboardReadCompleteDelegate_Handle(LeaderboardReadCompleteDelegate);

	FOnlineLeaderboardReadRef leaderBoardReadObjectRef = leaderBoardReadObject.ToSharedRef();			
}

}

void AMyPawn::OnStatsRead(bool bWasSuccessful)
{
UE_LOG(LogTemp, Warning, TEXT(“OnStatsRead Called”));

if (bWasSuccessful)
{
	UE_LOG(LogTemp, Warning, TEXT("Successfully read leaderboard around rank. Leader board name: %s"), *leaderBoardReadObject->LeaderboardName.ToString());	

	FVariantData* Variant;
	int32 Value;
	UE_LOG(LogTemp, Warning, TEXT("Leaderboard rows count: %d"), leaderBoardReadObject->Rows.Num());

	for (int Idx = 0; Idx < leaderBoardReadObject->Rows.Num(); ++Idx)
	{
		UE_LOG(LogTemp, Warning, TEXT("Trying to find stat: %s"), *StatName.ToString());
		Variant = leaderBoardReadObject->Rows[Idx].Columns.Find(StatName);

		if (Variant != nullptr)
		{
			UE_LOG(LogTemp, Warning, TEXT("Variant is not nullptr"));
			Variant->GetValue(Value);
			MyScores.Add(Value);
		}
	}
}
else
{
	UE_LOG(LogTemp, Warning, TEXT("Could no read leaderboard around rank"));
}	
leaderBoardReadObject = NULL;

}

Did you solve it? Need it too.