Доступ к изображению профиля Raw Gamer

Я использую новый XBox Live API для C# (https://github.com/Microsoft/xbox-live-api-csharp) для официального доступа через приложение UWP.

Я могу нормально аутентифицироваться и ссылаться на пользователя XBox Live в контексте.

SignInResult result = await user.SignInAsync(); 
XboxLiveUser user = new XboxLiveUser();

Успех! Однако я не могу найти подходящий вызов API для возврата XboxUserProfile или XboxSocialProfile. Оба этих класса содержат URL-адреса необработанных изображений игрока. После просмотра документации MSDN и библиотеки GH мне не ясно, как это достигается. Любая помощь приветствуется.


person Shaun    schedule 27.03.2017    source источник


Ответы (1)


Приведенный ниже пример должен работать, если вы отвечаете следующим требованиям:

  1. Ссылайтесь на общий проект, который содержит API из вашего проекта, и не ссылайтесь на проект «Microsoft.Xbox.Services.UWP.CSharp».
  2. Скопируйте все файлы исходного кода из проекта «Microsoft.Xbox.Services.UWP.CSharp» в свой проект.
  3. Включите пакет Newtonsoft.Json NuGet в свой проект.

Шаги 1 и 2 важны, поскольку они позволяют вам получить доступ к «внутренним» конструкторам, которые в противном случае были бы защищены от вас.

Код для получения данных профиля:

        XboxLiveUser user = new XboxLiveUser();
        await user.SignInSilentlyAsync();

        if (user.IsSignedIn)
        {
            XboxLiveContext context = new XboxLiveContext(user);
            PeopleHubService peoplehub = new PeopleHubService(context.Settings, context.AppConfig);
            XboxSocialUser socialuser = await peoplehub.GetProfileInfo(user, SocialManagerExtraDetailLevel.None);
            // Do whatever you want to do with the data in socialuser
        }

Вы все еще можете столкнуться с проблемой, как и я. При сборке проекта вы можете столкнуться со следующей ошибкой:

Ошибка CS0103 Имя «UserPicker» не существует в текущем контексте ...\System\UserImpl.cs 142 Active

Если вы получили эту ошибку, убедитесь, что вы нацелены на Win 10.0 Build 14393.

person MrZweistein    schedule 27.03.2017
comment
Спасибо, Цвайстейн! Для разработчиков Xbox live API, которые могут следить за stackoverflow... Мне было бы очень интересно понять причину сокрытия этих данных. - person Shaun; 27.03.2017
comment
Я не думаю, что они скрывают информацию. В другом запросе о помощи я прочитал, что единственный способ использовать API на данный момент — это включить его в свой проект. Они планируют выпустить пакет NuGet позже, но даты не называются. - person MrZweistein; 27.03.2017
comment
Правильно, мы не скрываем информацию. Он доступен с помощью классов SocialManager, но сейчас это немного сложно. Это будет упрощено. Сценарий UserProfile можно увидеть в подключаемом модуле Unity (github.com/Microsoft/xbox-live-unity-plugin/blob/master/Assets/) для примера того, как использовать SocialManager для получения информации о профиле пользователя. SocialManager обрабатывает кэширование и обновление данных за вас, поэтому он предпочтительнее, чем напрямую использовать PeopleHubService. - person Ben Randall; 28.03.2017
comment
Честно говоря, PeopleHub немного проще, но я вижу преимущества SocialManager в долгосрочной перспективе. - person MrZweistein; 30.03.2017