Criar um aplicativo Cordova usando o Serviço de Descoberta do O365 e a API de arquivos
Neste tópico, você aprenderá como usar algumas das novas APIs nas bibliotecas de cliente para o Office 365 em um aplicativo criado usando o Visual Studio Tools para o Apache Cordova.
Ferramentas de API do Office 365 para Visual Studio 2013
Se você estiver tentando consumir as APIs do Office 365 pela primeira vez em um fluxo de trabalho do aplicativo Cordova, siga instruções o documentação para instalar ferramentas de API do Office 365 para visualização do Visual Studio e adicionar o serviço em seu projeto.
O Office 365 fornece APIs baseados em REST que permitem que os desenvolvedores acessem os recursos do Office, como calendário, contatos, emails, arquivos e muito mais. Você pode programar diretamente as APIs REST para interagir com o Office 365, mas se você usar as APIs REST, você deve escrever e manter o código de gerenciamento de tokens de autenticação, construir as URLs à direita, consultando a API você deseja acesso e executar outras tarefas. Usando bibliotecas de cliente do Office 365 para acessar as APIs do Office 365, em vez de REST, você deve reduzir a complexidade do código que você precisa para escrever em seu aplicativo Cordova.
A atualização mais recente para Ferramentas de API do Office 365 para visualização do Visual Studio inclui suporte para serviços de arquivo do SharePoint, que fornece acesso ao serviço de MyFiles. Além dos serviços do SharePoint, há suporte para o serviço de descoberta do O365 é fornecido, que ajuda a localizar os pontos de extremidade de serviço do SharePoint para o usuário conectado. Esses serviços podem ser usados para criar um Explorador de arquivos simples que enumera arquivos em OneDrive for Business.
Criar um Explorador de arquivos simples para OneDrive for Business
O objetivo desse aplicativo é enumerar arquivos armazenados em OneDrive for Business. A fonte do exemplo estiver em GitHub.
Introdução
As estruturas e bibliotecas a seguir são usadas neste aplicativo.
Bootstrap, layout e estilo.
AngularJS, para ligação de dados com a interface do usuário.
APIs do office 365, para interagir com Office365 para enumerar OneDrive for Business.
Os serviços usados no aplicativo de demonstração para buscar arquivos do OneDrive são:
Serviços de descoberta do O365, para encontrar terminais de serviços SharePoint para o usuário conectado.
Arquivos API, para recuperar as informações do arquivo e pastas para onedrive do usuário for Business.
Criação de autenticação e contextos de descoberta
Antes de seu aplicativo pode acessar serviços do Office 365, o aplicativo deve ser autenticado. O estrutura comum de autorização no AD do Azure handles the authentication.
O basic objetos que é necessário antes de executar qualquer operações com o serviço de O365 são os objetos de contexto. Para o aplicativo de demonstração, são necessários os seguintes objetos de contexto:
Contexto de autenticação
Contexto de descoberta
O código a seguir cria esses objetos da seguinte maneira:
var authContext = new O365Auth.Context();
var discoveryContext = new O365Discovery.Context();
O authContext objeto lhe permite buscar o token de ID solicitado e tokens, que podem ser usados para obter informações de usuário e para chamar serviços específicos de acesso.
O discoveryContext objeto permite buscar os recursos de serviço do Office 365, como email, calendário ou MyFiles, juntamente com seus pontos de extremidade de URL correspondentes.
Uma vez que o token de ID solicitado, ele pode ser usado para identificar o usuário. O token de ID é um token da web codificados na base64. Você pode usar esse token para recuperar o usuário tiver conectado no momento, da seguinte maneira.
authContext.getIdToken("https://outlook.office365.com/").then(
(function (token) {
// Can use token.givenName and token.familyName
}).bind(this), function (reason) {
console.og(reason.message);
});
O token de acesso é um token da web codificados de URL de base64 que pode ser usado para acesso à API. Eis como você pode obter o token de acesso que é usado para chamar serviços do SharePoint.
authContext.getAccessTokenFn('Microsoft.SharePoint')
Usando a API de arquivos
O objeto de recurso do SharePoint para "MyFiles" permite que você trabalhe com os arquivos e pastas programaticamente. Para fazer isso, você deve primeiro obter a coleção de recursos e, em seguida, procure o recurso de MyFiles na coleção retornada. Para obter o objeto de recursos, use o serviço de descoberta, passando o token de acesso Microsoft.SharePoint da seguinte maneira:
var fileCapability;
discoveryContext.services(authContext.getAccessTokenFn(
'Microsoft.SharePoint')).then(
(function (capabilities) {
// We have the capabilities object.
// Enumerate the object to get the capability
// for "My Files"
capabilities.forEach(function (v, i, a) {
if (v.capability === 'MyFiles') {
filesCapability = v;
}
});
}).bind(this), function (error) {
// error
});
Agora que você tem o objeto de recurso para MyFiles, você pode criar um cliente do SharePoint e, em seguida, chamar APIs de arquivo para trabalhar com arquivos de usuário, como arquivos armazenados em OneDrive for Business.
Criar o objeto de cliente do SharePoint
Para criar o objeto de cliente do SharePoint que é necessário que as informações de URI do ponto de extremidade armazenadas no objeto do recurso e o token de acesso para o recurso.
var sharePoint = new
Microsoft.CoreServices.SharePointClient (
filesCapability.endpointUri,
authContext.getAccessTokenFn(
filesCapability.resourceId)
);
Busca de arquivos e pastas
Agora é possível enumerar os arquivos chamando getFileSystemItems() da seguinte maneira:
sharePoint.files.getFileSystemItems().fetch().then(
function (value) {
value.currentPage.forEach(function (o) {
// o._type will indicate whether this is a
// file or folder.
// o._Id provides the full path.
// o._name provides the name of the file.
});
}, function (reason) {
console.log(reason);
});
No aplicativo de demonstração, o aplicativo busca as informações para cada arquivo e armazena as informações em um objeto JSON local. O aplicativo associa o objeto JSON na interface do usuário usando o AngularJS.
Experimente!
O aplicativo completo está disponível em Github. Faça o download e tente a amostra e diga-nos seus comentários. Queremos ouvir sua opinião sobre as novas APIs!