user3930696
user3930696

Reputation: 341

Xamarin Forms Open URI with token

I am building an Xamarin Forms PCL app and getting authenticated successfully with MSAL. My REST calls to graph API are all successful.

What I am trying to do is to open outlook or yammer or calendar in the browser using the token, i.e. without asking the users the re-authenticate.

Device.openUri always sends the users to an auth page, which makes sense since i am not sending the token with it.

Is this possible at all? If so, How can it be done?

thanks in advance !

Upvotes: 4

Views: 445

Answers (1)

Hussein Khalil
Hussein Khalil

Reputation: 1401

Please add permission (to Yammer for example) on your App registration in Azure. then define your array of scope as following

 string[] Scopes = { "User.Read", "https://api.yammer.com/user_impersonation" };

then initiate your PublicClientApplication (PCA)

            PCA = PublicClientApplicationBuilder.Create(ClientId).WithRedirectUri(ReturnUrl).Build();

after that as per the example from MSAL Team here you will need to add this code in your login button

try
{
 IAccount firstAccount = accounts.FirstOrDefault();
 authResult = await App.PCA.AcquireTokenSilent(App.Scopes, firstAccount)
                           .ExecuteAsync();
 /* display info*/
}
catch (MsalUiRequiredException ex)
{
 try
 {
  authResult = await App.PCA.AcquireTokenInteractive(App.Scopes, App.ParentWindow)
                            .ExecuteAsync();

  /* display info*/
 }
}

Now the Token you will get will work with Yammer as well

Hope this would help

Upvotes: 1

Related Questions