Copiar blocos de anotações, seções e páginas
Aplica-se a: Bloco de anotações empresariais apenas no Office 365
Para copiar um bloco de anotações, uma seção ou uma página do OneNote, envie uma solicitação POST ao ponto de extremidade respectivo da ação cópia. Por exemplo:
POST ../notes/sections/{id}/copyToNotebook
Envie um objeto de cópia JSON no corpo da mensagem. Se a solicitação for bem-sucedida, a API do OneNote retornará um código de status HTTP 202 e um cabeçalho Operation-Location. Em seguida, é possível pesquisar ponto de extremidade do resultado.
Observação
Atualmente, a funcionalidade de cópia tem suporte para blocos de anotações pessoais, de site e de grupo do Office 365, mas não para blocos de anotações de consumidores no OneDrive.
Construir o URI de solicitação
Para criar o URI de solicitação, inicie com a URL raiz do serviço para sua plataforma:
Blocos de anotações no OneDrive for Business
https://www.onenote.com/api/v1.0/me/notes/
https://www.onenote.com/api/v1.0/users/{id}/notes/
Blocos de anotações do site do SharePoint
https://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/
Blocos de anotações de grupo unificados
https://www.onenote.com/api/v1.0/myOrganization/groups/{id}/notes/
Acrescente o ponto de extremidade respectivo da ação cópia:
Copiar uma página a uma seção
../pages/{id}/copyToSection
Copiar uma seção a um bloco de anotações
../sections/{id}/copyToNotebook
Copiar uma seção a um grupo de seções
../sections/{id}/copyToSectionGroup
Copiar um bloco de anotações
../notebooks/{id}/copyNotebook
O bloco de anotações é copiado para a pasta Blocos de anotações na biblioteca de destino Documentos. A pasta Bloco de anotações será criada caso não exista.
Seu URI de solicitação completo parecerá com um dos seguintes exemplos:
https://www.onenote.com/api/v1.0/me/notes/sections/{id}/copyToNotebook
https://www.onenote.com/api/v1.0/users/{id}/notes/sections/{id}/copytosectiongroup
https://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/pages/{id}/copyToSection
https://www.onenote.com/api/v1.0/groups/{id}/notes/notebooks/{id}/copyNotebook
Observação
Saiba mais sobre a URL raiz de serviço.
Construir o corpo da mensagem
No corpo da mensagem, envie um objeto JSON que contenha os parâmetros de que sua operação precisa. Não há problema em enviar um corpo vazio se nenhum parâmetro for necessário.
Parâmetro | Descrição |
---|---|
id | A ID do bloco de anotações ou grupo de seções de destino (para seções); ou a ID da seção de destino (para páginas). Usada apenas com copyToNotebook, copyToSectionGroupe copyToSection. |
siteCollectionId | A ID do conjunto de sites do SharePoint que contém o site para o qual copiar o item. Usada com siteId e somente ao copiar para um site do SharePoint. |
siteId | A ID do site do SharePoint para o qual copiar o item. Usada com siteCollectionId e somente ao copiar para um site do SharePoint. |
groupId | A ID do grupo para o qual copiar o item. Usado somente ao copiar para um grupo unificado. |
renameAs | O nome da cópia. Usado apenas com copyNotebook, copyToNotebook e copyToSectionGroup. Tem o nome do item existente como padrão. |
Saiba como obter IDs de blocos de anotações, grupos de seção e seções e como obter conjuntos de sites e IDs de sites. Para obter informações sobre como obter IDs de grupo, consulte Documentação da API do Azure AD Graph.
Fluxo de exemplo para uma operação de cópia
Primeiro, envie uma solicitação POST para a ação de cópia no item que você deseja copiar. Você pode copiar dos blocos de anotações aos quais o usuário têm acesso (de propriedade ou compartilhado), desde que a origem e o destino estejam no mesmo locatário.
O exemplo a seguir copia um bloco de anotações pessoal para um site de equipe do SharePoint. A solicitação não inclui o parâmetro renameAs, portanto, o novo bloco de anotações usa o nome existente.
POST https://www.onenote.com/api/v1.0/me/notes/notebooks/1-db247796-f4d1-4972-a869-942919bf9923/copyNotebook
Authorization: Bearer {token}
Content-Type: application/json
{
"siteCollectionId":"0f6dbd5d-d179-49c6-aabd-15830ea90ca8",
"siteId":"3ba679cf-4470-466e-bc20-053bdfec75bf"
}
Observação
As operações de cópia respeitam as permissões do bloco de anotações de origem, de modo que o usuário autenticado deve poder acessar o bloco de anotações de origem para copiá-lo. Porém, cópias não retêm as permissões da origem. A cópia tem permissões como se usuário a tivesse recém-criado.
Se a chamada for bem-sucedida, a API do OneNote retornará um código de status 202 e um cabeçalho Operation-Location. Aqui está um trecho da resposta:
HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/notebooks/1-db247796-f4d1-4972-a869-942919bf9923
X-CorrelationId: 8a211d7c-220b-413d-8022-9a946499fcfb
Operation-Location: https://www.onenote.com/api/beta/myOrganization/siteCollections/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/sites/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/notes/operations/copy-8a211d7c-220b-413d-8022-9a946499fcfb
...
Então você pesquisa o ponto de extremidade Operation-Location para obter o status da operação de cópia:
GET https://www.onenote.com/api/beta/myOrganization/siteCollections/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/sites/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/notes/operations/copy-8a211d7c-220b-413d-8022-9a946499fcfb
Authorization: Bearer {token}
Accept: application/json
A API do OneNote retorna um objeto OperationModel que mostra o status atual. A resposta do exemplo a seguir é retornada quando o status é concluído.
{
"@odata.context":"https://www.onenote.com/api/beta/$metadata#myOrganization/siteCollections('0f6dbd5d-d179-49c6-aabd-15830ea90ca8')/sites('0f6dbd5d-d179-49c6-aabd-15830ea90ca8')/notes/operations/$entity",
"id":"copy-1c5be75c-e7db-4219-8145-a2d6c3f171a33ec9f3da-2b24-4fb1-a776-fe8c8cd1410f",
"status":"completed",
"createdDateTime":"2015-09-16T17:32:07.048Z",
"lastActionDateTime":"2015-09-16T17:32:17.7777639Z",
"resourceLocation":"https://www.onenote.com/api/v1.0/myOrganization/siteCollections/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/sites/3ba679cf-4470-466e-bc20-053bdfec75bf/notes/notebooks/1-bde29eeb-66e2-4fed-8d48-51cd1bf32511",
"resourceId":null,"
"error":null
}
O status pode ser concluído, em execução ou falhou.
- Se for concluído, a propriedade resourceLocation contém o ponto de extremidade do recurso para a nova cópia.
- Se for em execução, a propriedade percentComplete mostra a porcentagem aproximada de conclusão.
- Se for falhou, as propriedades error e @ api.diagnostics fornecem informações de erro.
Você pode pesquisar ponto de extremidade da operação até que a operação tenha sido concluída ou tenha falhado.
Solicitação e informações de resposta
Dados da solicitação | Descrição |
---|---|
Protocolo | Todas as solicitações usam o protocolo HTTPS de SSL/TLS. |
Cabeçalho de autorização | Bearer {token} , onde {token} é um token de acesso do OAuth 2.0 válido para o aplicativo registrado.Se ele estiver ausente ou for inválido, a solicitação falhará com um código de status 401. Confira Autenticação e permissões. |
Cabeçalho de tipo de conteúdo | application/json |
Cabeçalho Accept | application/json |
Dados de resposta | Descrição |
---|---|
Código de êxito | Um código de status HTTP do status 200. |
Cabeçalho Operation-Location | A URL para pesquisar o status da operação. A pesquisa do ponto de extremidade da operação retorna um objeto OperationModel, que contém o status da operação e outras informações. |
Cabeçalho X-CorrelationId | Um GUID que identifica de forma exclusiva a solicitação. Você pode usar esse valor juntamente com o valor do cabeçalho Date ao trabalhar com o suporte da Microsoft para solucionar problemas. |
Construir a URL raiz de serviço do OneNote
A URL raiz do serviço do OneNote usa o formato a seguir para todas as chamadas para a API do OneNote.
https://www.onenote.com/api/{version}/{location}/notes/
O segmento version
na URL representa a versão da API do OneNote que você deseja usar.
Use
v1.0
para o código de produção estável.Use
beta
para experimentar um recurso que está em desenvolvimento. Os recursos e a funcionalidade na versão beta podem mudar, por isso, você não deve usá-la no código de produção.
O segmento location
na URL representa a localização dos blocos de anotações que você deseja acessar:
Blocos de anotações no OneDrive for Business
Use
me
para conteúdos do OneNote pertencentes ao usuário atual.Use
users/{id}
para o conteúdo do OneNote que o usuário especificado (na URL) compartilhou com o usuário atual. Use a API do Azure AD Graph para obter IDs de usuários.
Blocos de anotações do site do SharePoint
Sites de equipe e outros sites do SharePoint podem conter blocos de anotações do OneNote em suas bibliotecas de documentos.
Use
myOrganization/siteCollections/{id}/sites/{id}
para conteúdo do OneNote em um site no locatário no qual o usuário atual está conectado. Apenas o locatário atual tem suporte, acessado com a palavra-chavemyOrganization
. Aprenda como obter IDs de site.
Blocos de anotações de grupo unificados
Grupos unificados (também chamados de grupos do Office 365) fazem parte da experiência conectada do Office 365. Os membros do grupo podem compartilhar blocos de anotações, arquivos e e-mails.
Use
myOrganization/groups/{id}
para conteúdos do OneNote no grupo especificado do qual o usuário atual é membro. Grupos unificados são os únicos tipo de grupo com suporte. Use a API do Azure AD Graph para obter IDs de grupos.
Use o método FromUrl para obter o conjunto de sites e as IDs de sites
Você pode usar o método FromUrl para obter o conjunto de sites e as IDs de sites para uma URL absoluta do site especificado. Você deve fazer essa chamada somente quando necessário e armazenar os valores para uso futuro.
O formato da URL do site depende da sua configuração, por exemplo https://domain.sharepoint.com/site-a
ou https://domain.com/sites/site-a
.
Solicitação de exemplo
GET https://www.onenote.com/api/v1.0/myOrganization/siteCollections/FromUrl(url='{full-path-to-SharePoint-site}')
Authorization: Bearer {token}
Accept: application/json
Resposta de exemplo
{"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#Microsoft.OneNote.Api.SiteMetadata", "siteCollectionId":"09d1a587-a84b-4264-3d15-669429be8cc5", "siteId":"d9e4d5c8-683f-4363-89ae-18c4e3da91e9"}
Requisitos para usar FromUrl e trabalhar com os blocos de anotações do site do SharePoint:
Você só pode criar blocos de anotações, grupos de seções, seções e páginas do OneNote em sites que tenham uma biblioteca de documentos padrão. (Alguns modelos de site não criam uma biblioteca de documentos padrão.) No entanto, as solicitações GET retornam o conteúdo do OneNote de todas as bibliotecas de documentos no site.
A URL raiz do serviço do OneNote é imutável, o que significa que você não pode usar um caminho do site da API REST do SharePoint e depois rastrear o ponto de extremidade
notes
nele.O usuário para quem você está fazendo a chamada deve ser membro do site.
O método FromUrl funciona apenas com sites que foram indexados. Pode levar várias horas para indexar um site novo.
Permissões
Para copiar blocos de anotações, seções e páginas do OneNote, você precisará solicitar as permissões apropriadas. Escolha o nível mais baixo de permissões que seu aplicativo precisa para funcionar.
Plataforma | Escopo de permissão |
---|---|
Consumidor | office.onenote_create, office.onenote_update_by_app, office.onenote_update |
Empresa | Notes.Create, Notes.ReadWrite.CreatedByApp, Notes.ReadWrite, Notes.ReadWrite.All |
Para saber mais sobre escopos de permissão e como eles funcionam, confira Escopos de permissão do OneNote.