Xamarin.forms Xamarin使用令牌形成开放URI

Xamarin.forms Xamarin使用令牌形成开放URI,xamarin.forms,Xamarin.forms,我正在构建一个Xamarin Forms PCL应用程序,并成功通过MSAL验证。我对graph API的REST调用都成功了 我尝试使用令牌在浏览器中打开outlook、yammer或calendar,即不要求用户重新验证 Device.openUri总是将用户发送到一个身份验证页面,这是有意义的,因为我没有随它一起发送令牌 这可能吗?如果是,如何做到 提前谢谢 请添加在Azure中注册应用程序的权限(例如Yammer)。 然后定义范围数组,如下所示 string[] Scopes = {

我正在构建一个Xamarin Forms PCL应用程序,并成功通过MSAL验证。我对graph API的REST调用都成功了

我尝试使用令牌在浏览器中打开outlook、yammer或calendar,即不要求用户重新验证

Device.openUri总是将用户发送到一个身份验证页面,这是有意义的,因为我没有随它一起发送令牌

这可能吗?如果是,如何做到

提前谢谢

请添加在Azure中注册应用程序的权限(例如Yammer)。 然后定义范围数组,如下所示

 string[] Scopes = { "User.Read", "https://api.yammer.com/user_impersonation" };
然后启动您的PublicClientApplication(PCA)

之后,根据MSAL团队的示例,您需要在登录按钮中添加此代码

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*/
 }
}
现在,您将获得的代币也将与Yammer一起使用


希望这会有所帮助

您找到解决此问题的方法了吗?
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*/
 }
}