Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

Sunday, June 25, 2017

Getting Started with Microsoft Azure Cognitive Services APIs account

Microsoft Cognitive Services awesome APIs and services for developers to create more intelligent applications. You can add more interesting feature like people emotion and video detection, facial, speech and vision recognition and speech and language understanding into our all the application. The following sample image showing for emotion and face detection using cognitive service.
In this article, you will get understand how to Create a Cognitive Services APIs account in the Azure Portal.
  1. Create a free trial Azure subscription from Azure portal.
  2. If you are looking paid version, Click here for detail
Create a Cognitive Services Account in Azure:
You can follow below steps for Create a Cognitive Services APIs account in the Azure Portal.
Step 1:  Sign in to the Azure portal.
Step 2: Click + NEW and Select AI + Cognitive Services
Step 3: You can see the entire list of Cognitive Services APIs. Click on the API of your choice to proceed.

Step 4: Select on required API and read about the API and Click on Create
Step 5: after click on create button, provide the following information for create cognitive service and click on create.
Name: Name of the account, Microsoft recommend a descriptive name. for example, <common name><APIName>Account.
Subscription: Select the available Azure subscriptions.
Location: Select the service locations.
Pricing tier: you can choose your pricing tier. F0 is free service and S0 paid service. based on your usage you can choose the pricing tier
Select the Resource group > confirm the Microsoft notice and Click on create for create the account
Step 6: wait for few second and you will get notification after complete. If Cognitive Services account is successfully deployed, click the notification to view the account information.
You can see and copy the Endpoint URL in the Overview section.
You can also copy keys in the Keys section to start making API calls in our Xamarin or other applications.
In this article, you learned about how to Create a Cognitive Services APIs account in the Azure Portal.
We can use these keys and end point URL to the next article with app to communicate intelligent feature in Xamarin application.
If you have any questions/ feedback/ issues, please write in the comment box.

Friday, June 23, 2017

Getting started with Microsoft Graph API in a Xamarin Forms Application

Microsoft offer a different service in the Cloud, Mail, Calendar, Contact, Chat and files from common Microsoft portal and also if you want to integrate to your application, you can access unified API wrapper in the Microsoft graph SDK. In this article you will get understand, how to implement login authentication and Send mail using Microsoft graph API in the Xamarin Forms application   

  1. Download and install Visual 2017 Community Edition or higher.
  2. Create Microsoft Account (If you already register Microsoft account, it’s not required)
Getting Start Create Application:
Step 1: You can navigate following URL https://developer.microsoft.com/en-us/graph/quick-start for register app and create sample app.
Step 2: Select the platform and Microsoft will create simple app that connects to Office 365 and calls the Microsoft Graph API.
Step 3: Register APP ID: You can register the application using click on “Get an app ID” and it will navigate to Microsoft application registration portal where you will be able to get an App ID and redirect URL. You will need either a School / Work /corporate / Azure AD or Microsoft account.
Step 4: Registration Success: after login with your Microsoft account and wait for few second appid and redirect url will generate automatically. if you want to modify or manage your app, you can click on application registration portal .
Step 5: Manage App in Registration Portal: You can manage or edit application from portal in the following App Name, redirect URL, generate new password, application logo, update the permission and click on Save button.
Step 6: Download Sample Code: you can download and unzip the source code > open the source code using Visual Studio. in the Sample application have multiple platform support as iOS, Android, UWP. The code sample will introduce you to authentication and send an email from your account.
Step 7: Microsoft Graph Client Library:
Microsoft Graph Client Library allows you to call Office 365, Azure AD and other Microsoft services through a single unified developer experience so right click on your solution and verify below NuGet package installed in the solution.

Step 8: Configure the project:   Open the App.cs file from XamarinConnect PCL project > replace your client ID and add the user permission scope.
  1. public static string ClientID = "< Update your Client ID > ";
  2. public static PublicClientApplication IdentityClientApp = new PublicClientApplication(ClientID);
  3. public static string[] Scopes = { "User.Read", "Mail.Send", "Files.ReadWrite" };
Step 8: Configure Send mail: Open the MainHelper.cs from XamarinConnect PCL project > update ComposeAndSendMailAsync method as per your requirement
  1. public async Task ComposeAndSendMailAsync(string subject,
  2.                                                            string bodyContent,
  3.                                                            string recipients)
  4.        {

  5.            // Get current user photo
  6.            Stream photoStream = await GetCurrentUserPhotoStreamAsync();

  7.            // If the user doesn't have a photo, or if the user account is MSA, we use a default photo

  8.            if (photoStream == null)
  9.            {
  10.                var assembly = typeof(MailHelper).GetTypeInfo().Assembly;
  11.                photoStream = assembly.GetManifestResourceStream("XamarinConnect.test.jpg");
  12.            }

  13.            MemoryStream photoStreamMS = new MemoryStream();
  14.            // Copy stream to MemoryStream object so that it can be converted to byte array.
  15.            photoStream.CopyTo(photoStreamMS);

  16.            DriveItem photoFile = await UploadFileToOneDriveAsync(photoStreamMS.ToArray());

  17.            MessageAttachmentsCollectionPage attachments = new MessageAttachmentsCollectionPage();
  18.            attachments.Add(new FileAttachment
  19.            {
  20.                ODataType = "#microsoft.graph.fileAttachment",
  21.                ContentBytes = photoStreamMS.ToArray(),
  22.                ContentType = "image/png",
  23.                Name = "me.png"
  24.            });

  25.            // Get the sharing link and insert it into the message body.
  26.            Permission sharingLink = await GetSharingLinkAsync(photoFile.Id);
  27.            string bodyContentWithSharingLink = String.Format(bodyContent, sharingLink.Link.WebUrl);

  28.            // Prepare the recipient list
  29.            string[] splitter = { ";" };
  30.            var splitRecipientsString = recipients.Split(splitter, StringSplitOptions.RemoveEmptyEntries);
  31.            List<Recipient> recipientList = new List<Recipient>();

  32.            foreach (string recipient in splitRecipientsString)
  33.            {
  34.                recipientList.Add(new Recipient { EmailAddress = new EmailAddress { Address = recipient.Trim() } });
  35.            }

  36.            try
  37.            {
  38.                var graphClient = AuthenticationHelper.GetAuthenticatedClient();

  39.                var email = new Message
  40.                {
  41.                    Body = new ItemBody
  42.                    {
  43.                        Content = bodyContentWithSharingLink,
  44.                        ContentType = BodyType.Html,
  45.                    },
  46.                    Subject = subject,
  47.                    ToRecipients = recipientList,
  48.                    Attachments = attachments
  49.                };

  50.                try
  51.                {
  52.                    await graphClient.Me.SendMail(email, true).Request().PostAsync();
  53.                }
  54.                catch (ServiceException exception)
  55.                {
  56.                    throw new Exception("We could not send the message: " + exception.Error == null ? "No error message returned." : exception.Error.Message);
  57.                }

  58.            }

  59.            catch (Exception e)
  60.            {
  61.                throw new Exception("We could not send the message: " + e.Message);
  62.            }
  63.        }
Step 9: Run the Application:
  1. Select iOS,android and Windows project and run the application .
  2. Click on Connect Button from iOS/Android /Windows
  1. Sign in with your personal or work or school account and grant the requested permissions.

4. Click on Send mail button. When the mail is sent, a Success message is displayed.
This mail message includes the photo as an attachment and also provides a sharing link to the uploaded file in OneDrive. Check your mail from Inbox or Spam.

Download Source Code:
You can download the complete source code from MSDN sample. 

In this article, you learned about how to implement login authentication and Send mail using Microsoft graph API in the Xamarin Forms application.

If you have any questions/ feedback/ issues, please write in the comment box.