0

У меня есть проект, в котором я бегу возглавляю (w/monitor) на своем Rasp Pi 2 и подключаю его к Интернету, чтобы я мог получать данные от услуг, размещенных сторонними лицами, а также те, что я встал в Лазуре.Win 10 IoT OAuth Credentials RP2 Календарь Google

Все звонки REST работают нормально. Однако часть oAuth календаря google работает только на моих машинах разработки и других машинах со встроенным браузером.

Есть ли способ, с помощью которого я могу сохранить все токены, полученные из отладочного запуска на моей машине dev, и передать их в развертывание на RP2?

У меня есть свои свойства client_secret.json файлов в моем .sln Сложение Действие = Содержание и Копировать в выходной каталог = Copy Всегда

код у меня есть, что работает на моих Дев машин:

var credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
         new Uri("ms-appx:///client_secret.json"), 
         new[] { Uri.EscapeUriString(CalendarService.Scope.Calendar) }, 
         calendarOwner, 
         CancellationToken.None); 

     var calendarService = new CalendarService(new BaseClientService.Initializer 
     { 
      HttpClientInitializer = credential, 
      ApplicationName = "myappname" 
     }); 

     var calendarListResource = await calendarService.CalendarList.List().ExecuteAsync(); 

Любая помощь или проницательность относительно того, как я могу заставить это работать на моем rp2, будет НАСТОЯТЕЛЬНО оценена! Это мой первый большой удар по чему-то rp2 + win10iot.

UPDATE: Исключение я получаю следующим образом: Error: "UserCancel", Описание: "WebAuthenticationBroker не возвращает код или ошибку детали: 0", Ури: "" Перескакивая прямо к моему блоку catch при обжатии метода AuthorizeAsync().

ответ

1

[UPDATE] У меня есть новая информация, которая может быть вам полезна. Аутентификация через OAuth обеспечивается окном браузера. В Win 10 IOT нет браузера, поэтому это невозможно. Согласно this blogpost, я пытаюсь реализовать безгласную аутентификацию, используя другое устройство, как описано here.

[Old Post] Извините, я не помогаю в данный момент, но я ищу решение этой проблемы. Я пытаюсь пройти аутентификацию против моего Azure AD с помощью WebAccountProvider. Развертывание на локальном компьютере работает очень хорошо, но при развертывании на моем RaspberryPi под управлением Windows 10 IOT «Windows» для ввода учетных данных даже не открывается!

Мой код (согласно Jason Lattimers Blogpost):

public static class CurrentEnvironment 
{ 
    # region Class Level Members 
    private const string _clientID = "[MYCLIENTID]"; 
    public const string CrmServiceUrl = "https://MYCRMORG.crm4.dynamics.com"; 
    private const string _authority = "https://login.microsoftonline.com/common/oauth2/authorize"; 
    private static string _accessToken; 

    # endregion 

    public static async Task<string> Initialize() 
    { 
     //var redirect = GetAppRedirectURI(); 
     try 
     { 
      WebAccountProvider wap = 
        await WebAuthenticationCoreManager.FindAccountProviderAsync("https://login.microsoft.com", _authority); 

      WebTokenRequest wtr = new WebTokenRequest(wap, string.Empty, _clientID); 
      wtr.Properties.Add("resource", CrmServiceUrl); 
      WebTokenRequestResult wtrr = await WebAuthenticationCoreManager.RequestTokenAsync(wtr); 

      if (wtrr.ResponseStatus == WebTokenRequestStatus.Success) 
      { 
       _accessToken = wtrr.ResponseData[0].Token; 
      } 

     } 
     catch (Exception ex) 
     { 

     } 

     return _accessToken;} 
+0

Пока я не «решить» вопрос у меня был, и я уверен, что еще хотите знать, как OAuth через Win 10 IoT, я «обходная» проблема, вставая на веб-службу api в Azure и используя ее, чтобы попасть в календарь Google с помощью учетной записи службы. Многие шаги в стороне, но он решил мои непосредственные потребности. –

+0

В этой статье упоминается, как «создать» браузер в UWP, используя тип контроля веб-просмотра, который может работать, если вы можете сделать его открытым с хорошим URL-адресом: http://www.instructables.com/id/Coding-Web-браузера для-Windows-10-ВГД-на-малина /? ALLSTEPS –

Смежные вопросы