Esse exemplo mostra como criar um TimerJob para o SharePoint Online utilizando SharePoint add-ins (anteriormente conhecido como apps) e armazenar no Azure.
Para rodar esse exemplo você precisará:
- Visual Studio 2013
- SharePoint Online
- Azure Subscription
Rode o comando abaixo no Git Shell:
git clone https://github.com/RARomano/WebCast-SPOnlineTimerJob.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 tenant do 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/sitecollection/web/list" Right="Manage" />
</AppPermissionRequests>
Com esse XML, você dará permissão em uma lista para o Add-In do SharePoint. Altere se for necessário.
[HttpGet]
public string AddItem()
{
try
{
string url = "";
using (var ctx = CreateClientContext(url))
{
var list = ctx.Web.Lists.GetByTitle("WebCast");
var item = list.AddItem(new ListItemCreationInformation());
item["Title"] = "WebCast_" + DateTime.Now.ToString("dd_MM_yyyy");
item.Update();
ctx.ExecuteQuery();
}
return "OK";
}
catch (Exception ex)
{
return ex.Message;
}
}
Clique com o botão direito na solution e clique em Publish.
Clique em Microsoft Azure Web Apps.
Clique em New e digite as informações necessárias, anote a URL que você criou para ser utilizada no próximo passo.
Abra o seu portal de gerenciamento do azure Azure Management Portal.
Clique em Agendador.
Clique em Criar trabalho do Agendador.
Clique em Criação Personalizada.
Dê um nome para a coleção de jobs.
Dê um nome para o job e coloque a url criada na etapa anterior.
Escolha a periodicidade