Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
No overview, você aprendeu sobre a Leitura Avançada e como ela implementa técnicas comprovadas para melhorar a compreensão da leitura para alunos de idiomas, leitores emergentes e alunos com diferenças de aprendizagem. Este artigo demonstra como iniciar o Leitura Avançada usando JavaScript, Python, C#, Android ou iOS.
Pré-requisitos
- Uma assinatura Azure. É possível criar uma gratuitamente.
- Um recurso do Leitura Avançada configurado para autenticação do Microsoft Entra. Siga estas instruções para a configuração. Salve a saída da sessão em um arquivo de texto para configurar as propriedades do ambiente.
- Node.js e Yarn.
- Um IDE como Visual Studio Code.
Criar um aplicativo Web Node.js com o Express
Crie um aplicativo Web Node.js com a ferramenta express-generator.
npm install express-generator -g
express --view=pug myapp
cd myapp
Instale as dependências do yarn e adicione as dependências request e dotenv, que serão usadas posteriormente no tutorial.
yarn
yarn add request
yarn add dotenv
Instale as bibliotecas axios e qs com o seguinte comando:
npm install axios qs
Configurar a autenticação
Em seguida, escreva uma API de back-end para recuperar um token de autenticação Microsoft Entra.
Para essa parte, você precisa de alguns valores da etapa de pré-requisito da configuração de autenticação do Microsoft Entra. Veja novamente o arquivo de texto que você salvou dessa sessão.
TenantId => Azure subscription TenantId
ClientId => Microsoft Entra ApplicationId
ClientSecret => Microsoft Entra Application Service Principal password
Subdomain => Immersive Reader resource subdomain (resource 'Name' if the resource was created in the Azure portal, or 'CustomSubDomain' option if the resource was created with Azure CLI PowerShell. Check the Azure portal for the subdomain on the Endpoint in the resource Overview page, for example, 'https://[SUBDOMAIN].cognitiveservices.azure.com/')
Crie um arquivo chamado .env na raiz de seu projeto. Cole o código a seguir nele, fornecendo os valores fornecidos quando você criou seu recurso de Leitura Avançada. Não inclua aspas ou os caracteres { e }.
TENANT_ID={YOUR_TENANT_ID}
CLIENT_ID={YOUR_CLIENT_ID}
CLIENT_SECRET={YOUR_CLIENT_SECRET}
SUBDOMAIN={YOUR_SUBDOMAIN}
Certifique-se de não confirmar esse arquivo no controle do código-fonte, uma vez que ele contém segredos que não devem ser tornados públicos.
Em seguida, abra app.js e adicione o seguinte à parte superior do arquivo. Isso carrega as propriedades definidas no arquivo .env como variáveis de ambiente no Node.
require('dotenv').config();
Abra o arquivo routes\index.js e substitua seu conteúdo pelo código a seguir.
Esse código cria um ponto de extremidade de API que adquire um token de autenticação do Microsoft Entra usando sua senha de entidade de serviço. Ele também recupera o subdomínio. Em seguida, ele retorna um objeto que contém o token e o subdomínio.
var request = require('request');
var express = require('express');
var router = express.Router();
router.get('/getimmersivereaderlaunchparams', function(req, res) {
request.post ({
headers: {
'content-type': 'application/x-www-form-urlencoded'
},
url: `https://login.windows.net/${process.env.TENANT_ID}/oauth2/token`,
form: {
grant_type: 'client_credentials',
client_id: process.env.CLIENT_ID,
client_secret: process.env.CLIENT_SECRET,
resource: 'https://cognitiveservices.azure.com/'
}
},
function(err, resp, tokenResponse) {
if (err) {
return res.status(500).send('CogSvcs IssueToken error');
}
const token = JSON.parse(tokenResponse).access_token;
const subdomain = process.env.SUBDOMAIN;
return res.send({token: token, subdomain: subdomain});
}
);
});
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
O ponto de extremidade da API getimmersivereaderlaunchparams deve ser protegido por algum tipo de autenticação (por exemplo, OAuth) para impedir que usuários não autorizados obtenham tokens a serem usados contra seu serviço Leitura Avançada e cobrança; esse trabalho está além do escopo deste tutorial.
Iniciar o Leitura Avançada com conteúdo de exemplo
Abra views\layout.pug e adicione o seguinte código sob a marca
head, antes da marcabody. Essas marcasscriptcarregam o SDK Leitura Avançada e jQuery.script(src='https://ircdname.azureedge.net/immersivereadersdk/immersive-reader-sdk.1.2.0.js') script(src='https://code.jquery.com/jquery-3.3.1.min.js')Abra views\index.pug e substitua o conteúdo pelo código a seguir. Esse código preenche a página com algum conteúdo de exemplo e adiciona um botão que inicia o Leitura Avançada.
extends layout block content h2(id='title') Geography p(id='content') The study of Earth's landforms is called physical geography. Landforms can be mountains and valleys. They can also be glaciers, lakes or rivers. div(class='immersive-reader-button' data-button-style='iconAndText' data-locale='en-US' onclick='launchImmersiveReader()') script. function getImmersiveReaderLaunchParamsAsync() { return new Promise((resolve, reject) => { $.ajax({ url: '/getimmersivereaderlaunchparams', type: 'GET', success: data => { resolve(data); }, error: err => { console.log('Error in getting token and subdomain!', err); reject(err); } }); }); } async function launchImmersiveReader() { const content = { title: document.getElementById('title').innerText, chunks: [{ content: document.getElementById('content').innerText + '\n\n', lang: 'en' }] }; const launchParams = await getImmersiveReaderLaunchParamsAsync(); const token = launchParams.token; const subdomain = launchParams.subdomain; ImmersiveReader.launchAsync(token, subdomain, content); }Nosso aplicativo Web está pronto. Inicie o aplicativo executando:
npm startAbra o navegador e navegue até
http://localhost:3000. Veja o conteúdo acima na página. Selecione o botão Leitura Avançada para iniciar a Leitura Avançada com seu conteúdo.
Especificar o idioma do conteúdo
O Leitura Avançada tem suporte para vários idiomas diferentes. Você pode especificar o idioma do conteúdo seguindo estas etapas.
Abra views\index.pug e adicione o seguinte código abaixo da marca
p(id=content)que você adicionou na etapa anterior. Esse código adiciona algum conteúdo em espanhol à sua página.p(id='content-spanish') El estudio de las formas terrestres de la Tierra se llama geografía física. Los accidentes geográficos pueden ser montañas y valles. También pueden ser glaciares, lagos o ríos.Em views\index.pug, adicione o código a seguir acima da chamada para
ImmersiveReader.launchAsync. Esse código passa o conteúdo espanhol para o Leitura Avançada.content.chunks.push({ content: document.getElementById('content-spanish').innerText + '\n\n', lang: 'es' });Navegue até
http://localhost:3000novamente. Você deverá ver o texto em espanhol na página e, quando selecionar Leitura Avançada, ele também aparecerá no Leitura Avançada.
Especificar o idioma da interface Leitura Avançada
Por padrão, o idioma da interface Leitura Avançada corresponde às configurações de idioma do navegador. Você também pode especificar o idioma da interface Leitura Avançada com o código a seguir.
Em views\index.pug, substitua a chamada para
ImmersiveReader.launchAsync(token, subdomain, content)pelo código a seguir.const options = { uiLang: 'fr', } ImmersiveReader.launchAsync(token, subdomain, content, options);Navegue até
http://localhost:3000. Quando você inicia o Leitura Avançada, a interface é mostrada em francês.
Iniciar o Leitura Avançada com conteúdo matemático
Você pode incluir conteúdo matemático no Leitura Avançada usando MathML.
Modifique views\index.pug para incluir o seguinte código acima da chamada para
ImmersiveReader.launchAsync:const mathML = '<math xmlns="https://www.w3.org/1998/Math/MathML" display="block"> \ <munderover> \ <mo>∫</mo> \ <mn>0</mn> \ <mn>1</mn> \ </munderover> \ <mrow> \ <msup> \ <mi>x</mi> \ <mn>2</mn> \ </msup> \ <mo>ⅆ</mo> \ <mi>x</mi> \ </mrow> \ </math>'; content.chunks.push({ content: mathML, mimeType: 'application/mathml+xml' });Navegue até
http://localhost:3000. Ao iniciar o Leitura Avançada e rolar até a parte inferior, você verá a fórmula matemática.
Próxima etapa
Pré-requisitos
- Uma assinatura Azure. É possível criar uma gratuitamente.
- Um recurso do Leitura Avançada configurado para autenticação do Microsoft Entra. Siga estas instruções para a configuração. Salve a saída da sessão em um arquivo de texto para configurar as propriedades do ambiente.
- Um IDE como Visual Studio Code.
- Git.
- Clone o SDK de Leitura Avançada do GitHub.
Você pode instalar as seguintes ferramentas como parte das instruções neste guia:
- Python e pip. A partir do Python 3.4, o pip é incluído por padrão com os instaladores binários Python.
- Flask
- Jinja
- virtualenv e virtualenvwrapper-win para Windows ou virtualenvwrapper para OSX
- O módulo de solicitações
Configurar as credenciais de autenticação
Crie um novo arquivo chamado .env na raiz de seu projeto. Cole os seguintes nomes e valores nele. Forneça os valores fornecidos quando você criou seu recurso de Leitura Avançada.
TENANT_ID={YOUR_TENANT_ID}
CLIENT_ID={YOUR_CLIENT_ID}
CLIENT_SECRET={YOUR_CLIENT_SECRET}
SUBDOMAIN={YOUR_SUBDOMAIN}
Não faça commit desse arquivo no controle do código-fonte, pois ele contém segredos que não devem ser disponibilizados publicamente.
Proteja o ponto de extremidade da API getimmersivereadertoken com alguma forma de autenticação, como OAuth. A autenticação impede que usuários não autorizados obtenham tokens para serem usados com o serviço Leitura Avançada e o respectivo faturamento. Esse trabalho não está no escopo deste tutorial.
Criar um aplicativo Web Python no Windows
Instale Python.
Marque a caixa de seleção Adicionar Python ao PATH e selecione Instalação personalizada.
Adicione Recursos Opcionais marcando as caixas de seleção e selecione Avançar.
Em Opções Avançadas, defina o caminho de instalação como sua pasta raiz, por exemplo, C:\Python312. Em seguida, selecione Instalar.
Dica
Ao definir um caminho de instalação personalizado, a variável PATH ainda poderá apontar para o caminho de instalação padrão. Verifique se o PATH aponta para a pasta personalizada.
Depois que a instalação do Python for concluída, abra um prompt de comando e use cd para ir para a pasta scripts Python.
cd C:\Python312\Scripts
Instale o Flask.
pip install flask
Instale o Jinja2. É um mecanismo de modelo completo para Python.
pip install jinja2
Instale o virtualenv. Essa ferramenta cria ambientes Python isolados.
pip install virtualenv
Instalar virtualenvwrapper-win. A ideia por trás do virtualenvwrapper é facilitar o uso de virtualenv.
pip install virtualenvwrapper-win
Instale o módulo solicitações. As solicitações são uma biblioteca HTTP licenciada do Apache2, escrita em Python.
pip install requests
Instale o módulo python-dotenv. Esse módulo lê o par chave-valor do arquivo .env e os adiciona à variável de ambiente.
pip install python-dotenv
Crie um ambiente virtual.
mkvirtualenv.bat quickstart-python
Use cd para acessar a pasta raiz do projeto de exemplo.
cd C:\immersive-reader-sdk\js\samples\quickstart-python
Conecte o projeto de exemplo com o ambiente. Essa ação mapeia o ambiente virtual criado recentemente para a pasta raiz do projeto de exemplo.
setprojectdir .
Ative o ambiente virtual.
activate
O projeto agora deve estar ativo, e você verá algo como (quickstart-python) C:\immersive-reader-sdk\js\samples\quickstart-python> no prompt de comando.
Desative o ambiente.
deactivate
O prefixo (quickstart-python) deve ter sido removido, pois o ambiente está desativado.
Para reativar o ambiente, execute workon quickstart-python na pasta raiz do projeto de exemplo.
workon quickstart-python
Iniciar o Leitura Avançada com conteúdo de exemplo
Quando o ambiente estiver ativo, execute o projeto de exemplo digitando flask run na pasta raiz do projeto de exemplo.
flask run
Abra o navegador e acesse http://localhost:5000.
Criar um aplicativo Web Python no OSX
Instale Python.
A pasta raiz Python, por exemplo, Python312, agora deve estar na pasta Aplicativos. Abra o Terminal e use cd para entrar na pasta Python.
cd Python312
Instale pip.
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
Execute o código a seguir para instalar o pip para o usuário conectado no momento para evitar problemas de permissões.
python get-pip.py --user
sudo nano /etc/paths
- Insira a senha quando solicitado.
- Adicione o caminho da instalação do pip à variável PATH.
- Vá para a parte inferior do arquivo e insira o caminho que você quer adicionar como o último item da lista, por exemplo,
PATH=$PATH:/usr/local/bin. - Selecione CTRL + X para sair.
- Insira Y para salvar o buffer modificado.
É isso! Para testá-lo, em uma nova janela do Terminal, digite echo $PATH.
Instale o Flask.
pip install flask --user
Instale o Jinja2. É um mecanismo de modelo completo para Python.
pip install Jinja2 --user
Instale o virtualenv. Essa ferramenta cria ambientes Python isolados.
pip install virtualenv --user
Instale o virtualenvwrapper. A ideia por trás do virtualenvwrapper é facilitar o uso de virtualenv.
pip install virtualenvwrapper --user
Instale o módulo solicitações. As solicitações são uma biblioteca HTTP licenciada do Apache2, escrita em Python.
pip install requests --user
Instale o módulo python-dotenv. Esse módulo lê o par chave-valor do arquivo .env e os adiciona à variável de ambiente.
pip install python-dotenv --user
Escolha uma pasta na qual você gostaria de manter seus ambientes virtuais e execute este comando:
mkdir ~/.virtualenvs
Use cd para acessar a pasta de aplicativo de exemplo do SDK Python Leitura Avançada.
cd immersive-reader-sdk/js/samples/quickstart-python
Crie um ambiente virtual.
mkvirtualenv -p /usr/local/bin/python3 quickstart-python
Conecte o projeto de exemplo com o ambiente. Essa ação mapeia o ambiente virtual criado recentemente para a pasta raiz do projeto de exemplo.
setprojectdir .
Ative o ambiente virtual.
activate
O projeto agora deve estar ativo, e você verá algo como (quickstart-python) /immersive-reader-sdk/js/samples/quickstart-python> no prompt de comando.
Desative o ambiente.
deactivate
O prefixo (quickstart-python) deve ter sido removido, pois o ambiente está desativado.
Para reativar o ambiente, execute workon quickstart-python na pasta raiz do projeto de exemplo.
workon quickstart-python
Iniciar o Leitura Avançada com conteúdo de exemplo
Quando o ambiente estiver ativo, execute o projeto de exemplo digitando flask run na pasta raiz do projeto de exemplo.
flask run
Abra o navegador e acesse http://localhost:5000.
Próxima etapa
Pré-requisitos
- Uma assinatura Azure. É possível criar uma gratuitamente.
- Um recurso do Leitura Avançada configurado para autenticação do Microsoft Entra. Siga estas instruções para obter a instalação. Salve a saída da sessão em um arquivo de texto para configurar as propriedades do ambiente.
- .NET SDK instalado.
- Visual Studio Code ou Visual Studio com a carga de trabalho ASP.NET e desenvolvimento web instalada.
Configurar autenticação
Este guia usa DefaultAzureCredential da biblioteca Azure.Identity para autenticar no serviço Leitura Avançada. Nenhum segredo do cliente é necessário em seu código. Localmente, DefaultAzureCredential usa suas credenciais logadas no CLI do Azure ou Visual Studio. Quando implantado em Azure, ele usa automaticamente a identidade gerenciada atribuída ao seu aplicativo.
Você precisa apenas do recurso Leitura Avançada subdomain. Salve o valor do subdomínio de quando você criou seu recurso de Leitura Avançada.
Entre no Azure para que DefaultAzureCredential possa descobrir suas credenciais durante o desenvolvimento local:
az login
Proteja o endpoint da API GetTokenAndSubdomain com alguma forma de autenticação, como OAuth. A autenticação impede que usuários não autorizados obtenham tokens para serem usados com o serviço Leitura Avançada e o respectivo faturamento. Esse trabalho não está no escopo deste tutorial.
Criar um aplicativo Web ASP.NET Core MVC
Crie um novo aplicativo Web ASP.NET Core MVC.
dotnet new mvc -n QuickstartSampleWebApp
cd QuickstartSampleWebApp
Instale o pacote Azure.Identity para adquirir tokens Microsoft Entra sem segredos do cliente:
dotnet add package Azure.Identity
Configurar o controlador
Abra Controladores\HomeController.cs e substitua seu conteúdo pelo código a seguir. Substitua {YOUR_SUBDOMAIN} pelo subdomínio do recurso Leitura Avançada. Esse controlador usa DefaultAzureCredential para adquirir um token de autenticação do Microsoft Entra e passa o token e o subdomínio para a vista.
using System.Threading;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Microsoft.AspNetCore.Mvc;
namespace QuickstartSampleWebApp.Controllers
{
public class HomeController : Controller
{
// Replace with your Immersive Reader resource subdomain.
private const string Subdomain = "{YOUR_SUBDOMAIN}";
private static readonly TokenCredential Credential = new DefaultAzureCredential();
private static readonly string[] Scopes =
new[] { "https://cognitiveservices.azure.com/.default" };
private async Task<string> GetTokenAsync()
{
var tokenRequestContext = new TokenRequestContext(Scopes);
var accessToken = await Credential
.GetTokenAsync(tokenRequestContext, CancellationToken.None)
.ConfigureAwait(false);
return accessToken.Token;
}
public async Task<IActionResult> Index()
{
ViewData["Token"] = await GetTokenAsync();
ViewData["Subdomain"] = Subdomain;
return View();
}
}
}
Iniciar o Leitura Avançada com conteúdo de exemplo
Abra Views\Home\Index.cshtml e substitua seu conteúdo pelo código a seguir. Esse código preenche a página com o conteúdo de exemplo e adiciona um botão que inicia o Leitura Avançada.
@{ ViewData["Title"] = "Immersive Reader C# Quickstart"; var token = ViewData["Token"] as string; var subdomain = ViewData["Subdomain"] as string; } <div class="container"> <button class="immersive-reader-button" data-button-style="iconAndText" data-locale="en"> </button> <h1 id="ir-title">Geography</h1> <div id="ir-content" lang="en-us"> <p> The study of Earth's landforms is called physical geography. Landforms can be mountains and valleys. They can also be glaciers, lakes, or rivers. </p> </div> </div> @section Scripts { <script src="https://ircdname.azureedge.net/immersivereadersdk/immersive-reader-sdk.1.4.0.js"> </script> <script> function handleLaunchImmersiveReader() { const token = "@token"; const subdomain = "@subdomain"; const data = { title: document.getElementById('ir-title').innerText, chunks: [{ content: document.getElementById('ir-content').innerHTML, mimeType: 'text/html' }] }; const options = { onExit: exitCallback }; ImmersiveReader.launchAsync(token, subdomain, data, options) .catch(function (error) { console.log(error); alert('Error in launching the Immersive Reader. Check the console.'); }); } function exitCallback() { console.log('This is the callback function. It is executed when the Immersive Reader closes.'); } document.querySelector('.immersive-reader-button') .addEventListener('click', handleLaunchImmersiveReader); </script> }Inicie o aplicativo.
dotnet run
- Abra o navegador e vá para
https://localhost:5001. Você deve ver o conteúdo de exemplo na página. Selecione o botão Leitura Avançada para iniciar a Leitura Avançada com seu conteúdo.
Especificar o idioma do conteúdo
O Leitura Avançada dá suporte a vários idiomas diferentes. Você pode especificar o idioma do conteúdo seguindo estas etapas.
Em Views\Home\Index.cshtml, adicione o seguinte parágrafo dentro
#ir-content, após o parágrafo em inglês existente:<p lang="es"> El estudio de las formas terrestres de la Tierra se llama geografía física. Los accidentes geográficos pueden ser montañas y valles. También pueden ser glaciares, lagos o ríos. </p>No objeto
datano bloco de script, atualize a matrizchunkspara incluir o parágrafo em espanhol:const data = { title: document.getElementById('ir-title').innerText, chunks: [ { content: document.getElementById('ir-content').innerHTML, mimeType: 'text/html' } ] };O Leitura Avançada detecta automaticamente idiomas dentro do conteúdo HTML, portanto, nenhuma alteração adicional na matriz de partes é necessária.
Navegue até
https://localhost:5001novamente. Você deverá ver o texto em espanhol na página e, quando selecionar Leitura Avançada, ele também aparecerá no Leitura Avançada.
Especificar o idioma da interface Leitura Avançada
Por padrão, o idioma da interface Leitura Avançada corresponde às configurações do idioma do navegador. Você também pode especificá-lo explicitamente.
Em Views\Home\Index.cshtml, atualize o
optionsobjeto no bloco de script:const options = { uiLang: 'fr', onExit: exitCallback };Navegue até
https://localhost:5001. Quando você inicia o Leitura Avançada, a interface é mostrada em francês.
Iniciar o Leitura Avançada com conteúdo matemático
Você pode incluir conteúdo matemático no Leitura Avançada usando MathML.
Em Views\Home\Index.cshtml, adicione o seguinte código no interior
handleLaunchImmersiveReader, pouco antes daImmersiveReader.launchAsyncchamada:const mathML = '<math xmlns="https://www.w3.org/1998/Math/MathML" display="block">' + '<munderover><mo>∫</mo><mn>0</mn><mn>1</mn></munderover>' + '<mrow><msup><mi>x</mi><mn>2</mn></msup><mo>ⅆ</mo><mi>x</mi></mrow>' + '</math>'; data.chunks.push({ content: mathML, mimeType: 'application/mathml+xml' });Navegue até
https://localhost:5001. Ao iniciar o Leitura Avançada e rolar até a parte inferior, você verá a fórmula matemática.
Próxima etapa
Pré-requisitos
- Uma assinatura Azure. É possível criar uma gratuitamente.
- Um recurso do Leitura Avançada configurado para autenticação do Microsoft Entra. Siga estas instruções para a configuração. Salve a saída da sessão em um arquivo de texto para configurar as propriedades do ambiente.
- Git.
- Clone o SDK de Leitura Avançada do GitHub.
- Estúdio Android.
Configurar as credenciais de autenticação
Inicie o Android Studio e abra o projeto Leitura Avançada SDK do diretório immersive-reader-sdk/js/samples/quickstart-java-android (Java) ou immersive-reader-sdk/js/samples/quickstart-kotlin (Kotlin).
Dica
Talvez seja necessário permitir que o sistema atualize os plug-ins do Gradle para pelo menos a versão 8.
Para criar uma nova pasta de ativos, clique com o botão direito do mouse em aplicativo e selecione Pasta ->Pasta de Ativos na lista suspensa.
Clique com o botão direito do mouse em ativos e escolha Novo ->Arquivo. Nomeie o arquivo env.
Adicione os nomes e os valores a seguir e forneça os valores, conforme apropriado. Não faça commit desse arquivo no controle do código-fonte, pois ele contém segredos que não devem ser disponibilizados publicamente.
TENANT_ID=<YOUR_TENANT_ID> CLIENT_ID=<YOUR_CLIENT_ID> CLIENT_SECRET=<YOUR_CLIENT_SECRET> SUBDOMAIN=<YOUR_SUBDOMAIN>
Iniciar o Leitura Avançada com conteúdo de exemplo
Escolha um emulador de dispositivo no Gerenciador de AVD e execute o projeto.
Próximas etapas
Pré-requisitos
- Uma assinatura Azure. É possível criar uma gratuitamente.
- Um recurso do Leitura Avançada configurado para autenticação do Microsoft Entra. Siga estas instruções para a configuração. Salve a saída da sessão em um arquivo de texto para configurar as propriedades do ambiente.
- macOS e Xcode.
- Git.
- Clone o SDK de Leitura Avançada do GitHub.
Configurar as credenciais de autenticação
No Xcode, selecione Abrir Projeto Existente. Abra o arquivo immersive-reader-sdk/js/samples/ios/quickstart-swift.xcodeproj.
No menu superior, selecione Produto>Esquema>Editar Esquema.
Na exibição Executar, selecione a guia Argumentos.
Na seção Variáveis de Ambiente, adicione os nomes e os valores a seguir. Forneça os valores fornecidos quando você criou seu recurso de Leitura Avançada.
TENANT_ID=<YOUR_TENANT_ID> CLIENT_ID=<YOUR_CLIENT_ID> CLIENT_SECRET<YOUR_CLIENT_SECRET> SUBDOMAIN=<YOUR_SUBDOMAIN>
Não faça commit dessa alteração no controle do código-fonte porque ela contém segredos que não devem ser disponibilizados publicamente.
Iniciar o Leitura Avançada com conteúdo de exemplo
No Xcode, selecione um simulador de dispositivo e execute o projeto nos controles ou insira Ctrl+R.