Esse exemplo mostra como criar um TimerJob utilizando SharePoint apps.
Para rodar esse exemplo você precisará:
- Visual Studio 2013
- SharePoint 2013 / SharePoint Online
Rode o comando abaixo no Git Shell:
git clone https://github.com/RARomano/SharePointApp-TimerJob.git
Abrir a URL "_layouts/AppRegNew.aspx" no seu SharePoint
Clicar no botão gerar do ID do Cliente e do Segredo do Cliente. Digitar o Título da App preencher um domínio para a APP (pode ser localhost) e uma URL de redirecionamento (pode ser a URL do seu SharePoint)
Abrir a URL “_layouts/AppInv.aspx” no seu SharePoint e digite o ClientID criado na etapa 2.
No campo XML de Solicitação de Permissão do Aplicativo cole o XML abaixo:
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="Manage" />
</AppPermissionRequests>
Com esse XML, você dará permissão em todo o Tenant para o App. Altere se for necessário.
Alterar a Url e incluir a funcionalidade desejada.
string siteUrl = "http://localhost";
Uri uri = new Uri(siteUrl);
string realm = TokenHelper.GetRealmFromTargetUrl(uri);
//Get the access token for the URL.
// Requires this app to be registered with the tenant
string accessToken = TokenHelper.GetAppOnlyAccessToken(
TokenHelper.SharePointPrincipal,
uri.Authority, realm).AccessToken;
using (var ctx = TokenHelper.GetClientContextWithAccessToken(uri.ToString(), accessToken))
{
/// codigo vai aqui
ctx.Load(ctx.Web);
var webTitle = ctx.Web.Title;
ctx.ExecuteQuery();
Console.Write(webTitle);
}