Usare .NET SDK per accedere alle API del servizio Azure Mobile EngagementUsing .NET SDK to access Azure Mobile Engagement Service APIs

Azure Mobile Engagement espone un set di API che consentono di gestire i dispositivi, le campagne Push e Reach e così via. Per interagire con queste API, viene fornito anche un file Swagger che è possibile usare con gli strumenti per la generazione degli SDK per la lingua preferita.Azure Mobile Engagement exposes a set of APIs for you to manage Devices, Reach/Push campaigns etc. To interact with these APIs, we also provide you a Swagger file that you can use with tools to generate SDKs for your preferred language. Per generare l'SDK dal file Swagger è consigliabile usare lo strumento AutoRest.We recommend using the AutoRest tool to generate your SDK from our Swagger file.

Nota

Il servizio Azure Mobile Engagement verrà ritirato a marzo 2018 ed è attualmente disponibile solo per i clienti esistenti.The Azure Mobile Engagement service will be retired March 2018 and is currently only available to existing customers. Per altre informazioni, vedere Mobile Engagement.For more information, see Mobile Engagement.

In modo simile è stato creato un .NET SDK che consente di interagire con queste API tramite un wrapper C#. Non è necessario eseguire manualmente la negoziazione di token di autenticazione e l'aggiornamento.We have created a .NET SDK in a similar manner which allows you to interact with these APIs using a C# wrapper and you don't have to do the authentication token negotiation and refresh yourself.

In questo esempio viene eseguita la serie di passaggi necessari per usare .NET SDK:This sample goes through the set of steps to follow to use the .NET SDK:

  1. Prima di tutto è necessario configurare l'autenticazione per le API tramite Azure Active Directory, come descritto qui.First of all, you need to setup the authentication for your APIs using the Azure Active Directory as described here. Al termine di questa procedura si dovrebbe disporre di SubscriptionId, TenantId, ApplicationId e Secret validi.At the end of these steps, you should have a valid SubscriptionId, TenantId, ApplicationId and Secret.
  2. Verrà usata una semplice app console Windows per illustrare l'uso di .NET SDK con lo scenario di creazione di una campagna di tipo annuncio.We will use a simple Windows Console app to demonstrate working with the .NET SDK with the scenario of creating an Announcement campaign. Aprire Visual Studio e creare un' applicazione console.So open up Visual Studio and create a Console Application.
  3. È quindi necessario scaricare .NET SDK, disponibile come Microsoft Azure Engagement Management Library in NuGet Gallery qui.Next you need to download the .NET SDK which is available as Microsoft Azure Engagement Management Library in the Nuget gallery here. Se si sta installando NuGet da Visual Studio, durante la ricerca del pacchetto è necessario assicurarsi di avere selezionato l'opzione Includi versione preliminare :If you are installing the Nuget from Visual Studio, you need to ensure that you have check marked the Include prerelease option while searching for the package:

  4. Nel file Program.cs aggiungere gli spazi dei nomi seguenti:In the Program.cs file, add the following namespaces:

     using Microsoft.Rest.Azure.Authentication;
     using Microsoft.Azure.Management.Engagement;
     using Microsoft.Azure.Management.Engagement.Models;
    
  5. È quindi necessario definire le costanti seguenti, che verranno usate per l'autenticazione e l'interazione con l'app Mobile Engagement in cui si sta creando la campagna di tipo annuncio:Next you need to define the following constants that we will use for authentication and interacting with the Mobile Engagement App in which you are creating the Announcement campaign:

     // For authentication
     const string TENANT_ID = "<Your TenantId>";
     const string CLIENT_ID = "<Your Application Id>";
     const string CLIENT_SECRET = "<Your Secret>";
     const string SUBSCRIPTION_ID = "<Your Subscription Id>";
    
     // This is the Azure Resource group concept for grouping together resources 
     //  see here: https://azure.microsoft.com/en-us/documentation/articles/resource-group-portal/
     const string RESOURCE_GROUP = "";
    
     // For Mobile Engagement operations
     // App Collection Name 
     const string APP_COLLECTION_NAME = "";
     // Application Resource Name - make sure you are using the one as specified in the Azure portal (NOT the App Name)
     const string APP_RESOURCE_NAME = "";
    
  6. Definire la variabile EngagementManagementClient che useremo per chiamare i metodi di Mobile Engagement SDK:Define the EngagementManagementClient variable which we will use to call the Mobile Engagement SDK methods:

     static EngagementManagementClient engagementClient; 
    
  7. Aggiungere il codice seguente al metodo Main :Add the following to your Main method:

     try
         {
             // Initialize the Engagement SDK to call out APIs. 
             InitEngagementClient().Wait();
    
             // Create a Reach campaign
             CreateCampaign().Wait();
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.InnerException.Message);
             throw ex;
         }
    
  8. Definire il metodo seguente, che esegue l'inizializzazione di EngagementManagementClient , prima autenticandosi e quindi associandosi all'app Mobile Engagement in cui si prevede di creare la campagna di tipo annuncio:Define the following method which takes care of initializing the EngagementManagementClient by first authenticating and then associating itself with the Mobile Engagement App in which you plan to create the Announcement campaign:

     private static async Task InitEngagementClient()
     {
         var credentials = await ApplicationTokenProvider.LoginSilentAsync(TENANT_ID, CLIENT_ID, CLIENT_SECRET);
         engagementClient = new EngagementManagementClient(credentials) { SubscriptionId = SUBSCRIPTION_ID };
    
         // This is the Azure concept of ResourceGroup
         engagementClient.ResourceGroupName = RESOURCE_GROUP;
    
         // This is your Mobile Engagement App Collection & App Resource Name in which you create the campaign
         engagementClient.AppCollection = APP_COLLECTION_NAME;
         engagementClient.AppName = APP_RESOURCE_NAME;
     }
    

    Importante

    Si noti che è necessario usare il valore di APP_RESOURCE_NAME definito nel portale di gestione di Azure per il parametro AppName.Note that you need to use the App Resource Name as defined in the Azure management portal for the AppName parameter.

  9. Definire infine il metodo CreateCampaign, che usa EngagementClient inizializzato in precedenza, per creare una semplice campagna con recapito in qualsiasi momento & e di sola notifica con un titolo e un messaggio:Lastly, define the CreateCampaign method which will take care of using the previously initialized EngagementClient to create a simple AnyTime & Notification-only campaign with a title and message:

     private async static Task CreateCampaign()
     {
         //  Refer to the Announcement Campaign format from here - 
         //      https://msdn.microsoft.com/en-us/library/azure/mt683751.aspx
         // Make sure you are passing all the non-optional parameters
         Campaign parameters = new Campaign(
             name:"WelcomeCampaign",
             notificationTitle: "Welcome", 
             notificationMessage: "Thank you for installing the app!",
             type:"only_notif",
             deliveryTime:"any"
             );
    
         // Refer to the Campaign Kinds from here - https://msdn.microsoft.com/en-us/library/azure/mt683742.aspx
         CampaignStateResult result = 
             await engagementClient.Campaigns.CreateAsync(CampaignKinds.Announcements, parameters);
         Console.WriteLine("Campaign Id '{0}' was created successfully and it is in '{1}' state", result.Id, result.State);
     }
    
  10. Eseguire l'app console. Se la campagna viene creata correttamente, verrà visualizzato quanto segue:Run the console app and you will see the following on successful creation of the campaign:

    Campaign Id '159' was created successfully and it is in 'draft' stateCampaign Id '159' was created successfully and it is in 'draft' state