Giter Club home page Giter Club logo

microsoft / xbox-live-api Goto Github PK

View Code? Open in Web Editor NEW
325.0 54.0 107.0 10.39 MB

This repo contains Microsoft Xbox Live Service API (XSAPI) that enables game developers to access Xbox Live. To get access to the Xbox Live service, you can join the Xbox Live Creators Program at https://aka.ms/xblcp, or apply to the ID@Xbox program at http://www.xbox.com/en-us/Developers/id

License: MIT License

C++ 79.60% Batchfile 0.14% Objective-C 0.16% C 14.41% C# 0.03% Roff 0.04% CSS 0.02% HTML 3.05% CMake 0.01% Objective-C++ 0.37% Lua 1.17% Makefile 0.09% HLSL 0.85% POV-Ray SDL 0.06%

xbox-live-api's Introduction

Welcome!

The Microsoft Xbox Live Service API (XSAPI) enables game developers to access Xbox Live. To get access to the Xbox Live service, you can join the Xbox Live Creators Program at https://aka.ms/xblcp, or apply to the ID@Xbox program at: http://www.xbox.com/en-us/Developers/id

To learn more about these programs, please refer to the developer program overview.

What's in the API:

  • Xbox Live Features - profile, social, presence, leaderboards, achievements, multiplayer, matchmaking, title storage
  • Xbox Live Authentication Library (XAL) public headers - Note that this repository does not contain full XAL source, it only contains XAL source files needed to support building with the Microsoft GDK.
  • Platforms - Microsoft GDK (targeting both PC and Console). Installing the Microsoft GDK is a prerequisite for building XSAPI. Additionally, source and projects for XDK and UWP platforms can be found at https://github.com/microsoft/xbox-live-api/tree/1807_xdk_qfe_preview
  • Support for Visual Studio 2017 and 2019

How to use the Xbox Live Services API (XSAPI)

The best way to learn the API and see the best practices is to look at the Xbox Live samples that ship with the Microsoft GDK, and the Xbox Live developer docs

How to clone repo

This repo contains submodules. There are two ways to make sure you get submodules.

When initially cloning, make sure you use the --recursive option. IE:

git clone --recursive https://github.com/Microsoft/xbox-live-api.git

If you already cloned the repo, you can initialize submodules with:

git submodule sync
git submodule update --init --recursive

Note that using GitHub's feature to "Download Zip" does not contain the submodules and will not properly build. Please clone recursively instead.

How to link your project against source

You might want to link against the XSAPI source if you want to debug an issue, or understand where an error code is coming from. How to do this can be found at How to link your project against source

Contribute Back!

Is there a feature missing that you'd like to see, or found a bug that you have a fix for? Or do you have an idea or just interest in helping out in building the library? Let us know and we'd love to work with you. For a good starting point on where we are headed and feature ideas, take a look at our requested features and bugs.

Big or small we'd like to take your contributions back to help improve the Xbox Live Service API for everyone.

Having Trouble?

We'd love to get your review score, whether good or bad, but even more than that, we want to fix your problem. If you submit your issue as a Review, we won't be able to respond to your problem and ask any follow-up questions that may be necessary. The most efficient way to do that is to open a an issue in our issue tracker. The Xbox Live team will be engaged with the community and be continually improving our APIs, tools, and documentation based on the feedback received.

Xbox Live GitHub projects

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

xbox-live-api's People

Contributors

adityatms avatar aesteroidblues avatar bousk avatar camerongoodwin avatar claytonv avatar cuwaters avatar edingwell avatar edjamesmsft avatar faaxm avatar jameslen-atg avatar jasonsandlin avatar jeffrey-shi avatar jicailiu avatar jplafonta avatar kant avatar kevinasgari avatar mapogo6 avatar matt-vanderkolk avatar msft-garrettw avatar msft-heba avatar natiskan avatar r2d2proton avatar rakhad avatar rgomez391 avatar sawalkerxbox avatar sonaza avatar toddm avatar tv-s avatar willihay-ms avatar willmayn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xbox-live-api's Issues

GetLeaderboardForSocialGroupAsync() fails for Favorite category

Calling GetLeaderboardForSocialGroupAsync() with the SocialGroupConstants::Favorite category fails because the Xbox Live SDK (UWP) code passes the text Favorite in the URL instead of favorite.

leaderboard_service::get_leaderboard_for_social_group_internal() should do something like:

 if (utils::str_icmp(socialGroup, _T("Favorite")) == 0)
 {
     group = _T("favorite");
 }

Hard crash inside of xbox::services::multiplayer::manager::multiplayer_client_pending_reader::add_to_multiplayer_event_queue

I have no known repro steps( only hit thsi once) and we captured the mini-dump. I need to try and understand this issues and assure it is resolved.

Roger

MSVCP140.dll!mtx_do_lock(_Mtx_internal_imp_t * mtx, const xtime * target) Line 82 C++
r2_durango_static_128.exe!xbox::services::multiplayer::manager::multiplayer_client_pending_reader::add_to_multiplayer_event_queue(xbox::services::multiplayer::manager::multiplayer_event multiplayerEvent) Line 203 C++
r2_durango_static_128.exe!xbox::services::multiplayer::manager::multiplayer_client_manager::add_to_multiplayer_event_queue(xbox::services::multiplayer::manager::multiplayer_event multiplayerEvent) Line 686 C++
r2_durango_static_128.exe!xbox::services::multiplayer::manager::multiplayer_client_manager::add_multiplayer_event_helper(xbox::services::multiplayer::manager::multiplayer_event_type eventType, xbox::services::multiplayer::manager::multiplayer_session_type sessionType, std::error_code errorCode, std::basic_string<char,std::char_traits,std::allocator > errorMessage) Line 706 C++
r2_durango_static_128.exe!xbox::services::multiplayer::manager::multiplayer_client_manager::on_multiplayer_subscriptions_lost() Line 633 C++
r2_durango_static_128.exe!xbox::services::multiplayer::manager::multiplayer_client_manager::register_local_user_manager_events::__l2::() Line 68 C++
r2_durango_static_128.exe!xbox::services::multiplayer::manager::multiplayer_local_user_manager::on_subscriptions_lost(std::shared_ptrxbox::services::multiplayer::manager::multiplayer_local_user localUser) Line 452 C++
r2_durango_static_128.exe!xbox::services::multiplayer::manager::multiplayer_local_user_manager::activate_multiplayer_events::__l7::() Line 305 C++
r2_durango_static_128.exe!xbox::services::multiplayer::multiplayer_service_impl::multiplayer_subscription_lost() Line 139 C++
r2_durango_static_128.exe!xbox::services::multiplayer::multiplayer_service_impl::ensure_multiplayer_subscription::__l9::() Line 58 C++
r2_durango_static_128.exe!xbox::services::multiplayer::multiplayer_subscription::_Set_state(xbox::services::real_time_activity::real_time_activity_subscription_state newState) Line 162 C++
r2_durango_static_128.exe!xbox::services::real_time_activity::real_time_activity_service::clear_all_subscriptions() Line 282 C++
r2_durango_static_128.exe!xbox::services::real_time_activity::real_time_activity_service::_Close_websocket() Line 673 C++
r2_durango_static_128.exe!xbox::services::real_time_activity::real_time_activity_service::deactivate() Line 130 C++
r2_durango_static_128.exe!xbox::services::multiplayer::manager::multiplayer_local_user_manager::deactivate_multiplayer_events::__l2::() Line 330 C++
[External Code]
[Frames may be missing, no binary loaded for ntdll.dll]
ntdll.dll!00000101b24a0d88() Unknown

StatisticManager::AddLocalUser crashes when a user is added twice

Is there a C++ example that uses the Statistics namespace for writing to and reading from the xbox live services (stats/leaderboard information)?

How do I check if a user was already added to the StatisticManager? If I call AddLocalUser more than once for the same user the SDK crashes.

MultiplayerManager's JoinLobby call may unexpectedly fail with HTTP_E_STATUS_FORBIDDEN (0x80190193).

Hello,

I'm seeing an unexpected HTTP_E_STATUS_FORBIDDEN when I use JoinLobby() to process an accepted invite. The steps to reproduce are:

  1. Engage two users, A and B, on Xbox 1 where user A's XboxUserId compares less than B's XboxUserId.
  2. Engage user C, who is not following user A, on Xbox 2.
  3. Create a MPSD session containing user C with the "followed" joinRestriction.
  4. Send an invite from user C to user B.
  5. Accept the invite on machine 1.

In step 5 users A and B are passed to the JoinLobby() function along with the IProtocolActivatedEventArgs. It appears that things go wrong because the loop in multiplayer_lobby_client::commit_lobby_changes_helper() attempts to add the users to the MPSD session in the order that they appear when iterating the "xboxLiveContextMap" object. This is an std::map<> with the XboxUserId as the key type. Since A's XboxUserId compares less than B's the commit_lobby_changes_helper() function attempts to add user A to the MPSD session before user B (the invited user). This fails because user A does not have permission to write to the document.

The MPSD request returns status 403 and the following error message:

The requested session cannot be accessed. The calling user must have the multiplayer privilege and must be a member of the session if the session either isn't open or has a join restriction on it that the user doesn't satisfy, multi-user requests aren't allowed for large sessions, banned xuids can't access the session, users must have the communicate permission to access sessions that require it, users must qualify to access club sessions based on the club rules, and devices other than an Xbox One can only access sessions with user-style authorization.

I suspect that if the joinRestriction used in step #3 was "local" then it wouldn't matter whether user C is following user A, but I have not tested this.

I think the correct behaviour here would for MultiplayerManager to ensure that the user who was invited is added to the MPSD session first. This would enable the other local users on the invited user's machine to join as well. This is what happens when the invited user's XboxUserId, by chance, happens to compare lowest amongst the users attempting to join.

I also posted this bug here back on March 13th.

Crash in DebugGamertag

This may ultimately be a support request rather than a bug report, but after investigating at my end, I feel your input would be valuable here. We are getting reports in our Unity multiplayer game of occassional crashes, involving lots of joining/leaving lobbies typically. We have been sent the crash dumps, and whilst the reproduction steps are often all very different, in every case the actual crash is identical (we've had about a dozen of these). The callstack is:

Microsoft.Xbox.Services.dll!Microsoft::Xbox::Services::Multiplayer::Manager::MultiplayerMember::DebugGamertag::[Microsoft::Xbox::Services::Multiplayer::Manager::__IMultiplayerMemberPublicNonVirtuals::DebugGamertag]::get() Line 32

Microsoft.Xbox.Services.dll!Microsoft::Xbox::Services::Multiplayer::Manager::MultiplayerMember::[Microsoft::Xbox::Services::Multiplayer::Manager::__IMultiplayerMemberPublicNonVirtuals]::__abi_Microsoft_Xbox_Services_Multiplayer_Manager___IMultiplayerMemberPublicNonVirtuals____abi_get_DebugGamertag(Platform::String ^ * __abi_returnValue)

Multiplayer.dll!MultiplayerSessionMember_MemberCustomConstantsJson(Microsoft::Xbox::Services::Multiplayer::MultiplayerSessionMember ^ self) Line 50

MultiplayerImport.dll.native!00000103b3e95e11()

image

The bottom of the callstack is coming from the Unity provided Multiplayer managed (C#) code; I'm not actually sure how (or if) I can get any more information from this crashdump. The next level of the callstack is:

CREATE_HostName(CREATE_HostName_Entry)

image

The next level I don't have source code for, but from the disassembly you can see it is going through each field in MultiplayerMember, it gets to debug_gamertag and crashes:

image

The top of the callstack is:

DEFINE_PTR_PROP_GET_STR_OBJ(DebugGamertag, debug_gamertag);

image

My main clue is the initial native callstack item is called MultiplayerSessionMember_MemberCustomConstantsJson the bit in particular that interests me is the Json bit - it looks like something is attempting to turn a structure to JSON. I am not sure if this is to put it into a HTTP packet, or whether it is for debugging purposes. The fact it has got through the first few items in MultiplayerMember makes me think it isn't the MultiplayerMember structure itself which is causing the problem, but more specifically the debug_gamertag/DebugGamertag member/property. I wondered whether this 'debug' field can sometimes be null, and the calling code can't handle this? I did wonder whether the DEFINE_PTR_PROP_GET_STR_OBJ macro should have some extra if checks in? Possibly something like:

return ref new Platform::String((this == nullptr || m_cppObj == nullptr) ? "" : m_cppObj->##cppX().c_str());

Do you have any thoughts?

Calling StatisticManager.AddLocalUser throws at line 105 in user_context_winrt.cpp

Code was working with the version from a few months ago. Updating the source throws this error in my games that were running before.

Here's the code on my end:

        var context = (ServiceProvider as XBoxLive_PlatformServiceProvider).context;
        var singleton = Microsoft.Xbox.Services.Statistics.Manager.StatisticManager.SingletonInstance;
        singleton.AddLocalUser(context.User);

I'm using the latest version of libHttpClient updated from source, if it is relevant.

SetStatistics adds revision number that exceeds Integer and results in a 400 Error

Hi, I'm using the 1708 QFE1 release and trying to read and write stats.

I am getting 500 code internal server errors on statsread and a 400 code bad request error on statswrite, the latter because SetStatistics automatically adds a revision number that exceeds Integer which the server doesn't like:

statsupdaterevisionnumberintegeroverflow

I am not sure if the statsread internal server error is related (might be a Dev Center / sandbox issue) but I have stats configured in Dev Center and am using the right sandbox but they cannot be read through GetStatistic or GetStatisticNames. See 500 error below:

statsread500error

If this has been fixed by commit
086a63d
then can you please put out a new release? It's been almost three months since the last one.

Thanks in advance!

Cannot Update Xbox Live Creators Program Leaderboard

Hello All.

I'm having difficulty updating my Leaderboard on the Xbox Live Creators Program using the Unreal Engine 4 (UE4) with UWP.

Can you confirm if my approach is correct:

IOnlineSubsystem* oss = IOnlineSubsystem::Get();

if (oss != nullptr)
{
    IOnlineEvents* events = oss->GetEventsInterface().Get();

    if (events != nullptr)
    {
        FOnlineEventParms ep;
        ep.Add(FName(TEXT("HighScore")), levelScore->GetTotalScore());
        events->TriggerEvent(*playerId, TEXT("OceanWave"), ep);
    }
}

If my setup is correct, whould I see it in the GameHub? How do I know it's working?

Is compiling with XSAPI_SERVER officially supported?

We'd like to use XSAPI on our Xbox Live Compute hosted game service, and I can see there is a 'XSAPI_SERVER' define - but I can't find any documentation about this define and I was wondering if it's a supported option currently?

I've not been able to find the implementation of xbox_live_server::signin, so it feels like there's something missing from the depot?

[UWP] Crash after removing current user from system

Hi,

I have encounter a crash on 1806 QFE and 1806 release versions of Xbox Live API both in my app as well as in the Xbox Live samples after removing user from system.
I was able to invoke crash both in Leaderboards 2017 sample ( LINK ) and Game Save sample ( LINK ) with the newest version of Xbox Live API from nuget.

Callstack:
obraz

obraz

Affected versions:

  • 1806 QFE
  • 1806

Platform: UWP

Repro steps:

  1. Run app
  2. Sign in to Xbox Live
  3. Minimalize app
  4. Go to Settings -> Accounts -> Email & app accounts and remove user that was signed in within the app
  5. Get back to app and perform the action that will call Xbox Live API code

Expected Behaviour: Xbox Live API code would not crash and sign out completed handler will be invoked

Microsoft.Xbox.Live.SDK.WinRT.UWP v2018.4.20180411.2 consistently crashes after a few calls

Official Stable Nuget Package : Microsoft.Xbox.Live.SDK.WinRT.UWP v2018.4.20180411.2
Durango SDK 2018.04
Consistently crashes after a few achievement progress updates:
The first three lines is our code feedback:

Publishing Achi Progress : Free rewards! 25%
Publishing Achi Progress : Sidequests are easy! 12%
Publishing Achi Progress : Jimmy Sidequest! 7%
05/18/18 15:51:11 [18928] debug  - Token result properties:
05/18/18 15:51:11 [18928] debug  - Environment : prod
05/18/18 15:51:11 [18928] debug  - Gamertag : 2 001
05/18/18 15:51:11 [18928] debug  - Restrictions : 195 234
05/18/18 15:51:11 [18928] debug  - Privileges : 186 187 188 191 192 193 194 196 198 199 200 201 203 204 205 206 207 208 211 214 215 216 217 220 224 227 228 235 238 245 247 249 252 254 255
05/18/18 15:51:11 [18928] debug  - XboxUserId : 2814673284089132
05/18/18 15:51:11 [18928] debug  - TitleRestrictions : 190
05/18/18 15:51:11 [18928] debug  - Sandbox : HEAR.0
05/18/18 15:51:11 [18928] debug  - AgeGroup : Adult
05/18/18 15:51:11 [18928] debug  - Signature : AAAAAQHT7q9Hx0Qzny5pu...bIN3WQ8gZf3E3xs7Scf4PUKqHb21BjLYHqvHdKPNmePmna+eHw==
05/18/18 15:51:11 [11368] debug  - Token result properties:
05/18/18 15:51:11 [11368] debug  - Environment : prod
05/18/18 15:51:11 [11368] debug  - Gamertag : 2 001
05/18/18 15:51:11 [11368] debug  - Restrictions : 195 234
05/18/18 15:51:11 [11368] debug  - Privileges : 186 187 188 191 192 193 194 196 198 199 200 201 203 204 205 206 207 208 211 214 215 216 217 220 224 227 228 235 238 245 247 249 252 254 255
05/18/18 15:51:11 [11368] debug  - XboxUserId : 2814673284089132
05/18/18 15:51:11 [11368] debug  - TitleRestrictions : 190
05/18/18 15:51:11 [11368] debug  - Sandbox : HEAR.0
05/18/18 15:51:11 [11368] debug  - AgeGroup : Adult
05/18/18 15:51:11 [11368] debug  - Signature : AAAAAQHT7q9HzJdFhHeJG...ETcgL+wYpx/CrbgdHZdxw5r3I9NdaGpksjictDDQ==
05/18/18 15:51:11 [18580] debug  - Token result properties:
05/18/18 15:51:11 [18580] debug  - Environment : prod
05/18/18 15:51:11 [18580] debug  - Gamertag : 2 001
05/18/18 15:51:11 [18580] debug  - Restrictions : 195 234
05/18/18 15:51:11 [18580] debug  - Privileges : 186 187 188 191 192 193 194 196 198 199 200 201 203 204 205 206 207 208 211 214 215 216 217 220 224 227 228 235 238 245 247 249 252 254 255
05/18/18 15:51:11 [18580] debug  - XboxUserId : 2814673284089132
05/18/18 15:51:11 [18580] debug  - TitleRestrictions : 190
05/18/18 15:51:11 [18580] debug  - Sandbox : HEAR.0
05/18/18 15:51:11 [18580] debug  - AgeGroup : Adult
05/18/18 15:51:11 [18580] debug  - Signature : AAAAAQHT7q9HzYGT6KAN...SNxwhk36+4ggY0g==
The thread 0x4cf4 has exited with code 0 (0x0).
== [XBOX SERVICE CALL] #5
[HTTP Method]: POST
[URI]: https://achievements.xboxlive.com/users/xuid(2814673284089132)/achievements/8a650100-5236-4332-a730-33de2c51f6d6/update
[Request Headers]: Accept-Language: en-US,en; Content-Length: 182; Content-Type: application/json; charset=utf-8; User-Agent: XboxServicesAPI/2018.04.20180411.002; x-xbl-contract-version: 2; 
[Authorization Header]: XBL3.0 x=15991108778358245625; JlbmMiOiJBMTI4Q0JDK0hTMjU2IiwiYWx...
[Signature Header]: AAAAAQHT7q9Hx0Qzny5punleY...WQ8gZf3E3xs7Scf4PUKqHb21BjLYHqvHdKPNmePmna+eHw==
[Request Body]: {"achievements":[{"id":"57","percentComplete":25}],"action":"progressUpdate","serviceConfigId":"8a650100-5236-4332-a730-33de2c51f6d6","titleId":743569110,"userId":"2814673284089132"}
[HTTP Status]: 304 [HTTP_E_STATUS_NOT_MODIFIED] 
[Response Headers]: Cache-Control: no-cache, no-store; Content-Length: 0; Date: Fri, 18 May 2018 13:51:12 GMT; Expires: -1; MS-CV: 3uYYp2+sEEOLQsilek+nIA.0; Pragma: no-cache; X-Content-Type-Options: nosniff; 
[Response Body]: ""

Exception thrown at 0x00007FFAF5B84008 (KernelBase.dll) in DoomAndDestiny.exe: 0x40080201: WinRT originate error (parameters: 0x0000000080070057, 0x000000000000001D, 0x000000C7D1E7D210).
Exception thrown at 0x00007FFAF5B84008 in DoomAndDestiny.exe: Microsoft C++ exception: Platform::InvalidArgumentException ^ at memory location 0x000000C7D1E7D818. HRESULT:0x80070057 The parameter is incorrect.
WinRT information: The parameter is incorrect.
Stack trace:
 >[External Code]
 >Microsoft.Xbox.Services.dll!00007ffa99322245()
 >Microsoft.Xbox.Services.dll!00007ffa979112e0()
 >Microsoft.Xbox.Services.dll!00007ffa978e938a()
 >Microsoft.Xbox.Services.dll!00007ffa97901c90()
 >Microsoft.Xbox.Services.dll!00007ffa978ecb64()
 >Microsoft.Xbox.Services.dll!00007ffa9791f767()
 >Microsoft.Xbox.Services.dll!00007ffa97913857()
 >Microsoft.Xbox.Services.dll!00007ffa97912c58()
 >Microsoft.Xbox.Services.dll!00007ffa978e9fba()
 >Microsoft.Xbox.Services.dll!00007ffa97902760()
 >Microsoft.Xbox.Services.dll!00007ffa978ec6b4()
 >Microsoft.Xbox.Services.dll!00007ffa979202b7()
 >Microsoft.Xbox.Services.dll!00007ffa97913017()
 >Microsoft.Xbox.Services.dll!00007ffa978ed519()
 >Microsoft.Xbox.Services.dll!00007ffa9791c316()
 >Microsoft.Xbox.Services.dll!00007ffa97929555()
 >Microsoft.Xbox.Services.dll!00007ffa9793d408()
 >Microsoft.Xbox.Services.dll!00007ffa978a9df4()
 >Microsoft.Xbox.Services.dll!00007ffa97899f2c()
 >[External Code]
The program '[11552] DoomAndDestiny.exe' has exited with code 0 (0x0).

Both DisplayName and StatisticName are null

As mentioned previously, the DisplayName and StatisticName are returned as null. I tried accessing the value from the Leaderboard Sample too and encountered the same problem for display name. There didn't appear to be a way to access the stat name from the sample. Please see the images below. I may be able to debug this with the Sample since it includes the DLL too :)

displaynamestatname 01a

displaynamestatname 01b

displaynamestatname 02

displaynamestatname 03

displaynamestatname 04

WinRT Nuget packages do not work properly when used with UWP 6.0.1.

Repro:

  • Create a new Blank project (C#)
  • Ensure UWP packages are upgraded to latest (6.0.1)
  • Add Microsoft.Xbox.Live.SDK.WinRT.UWP

Observe:

  • No Microsoft.Xbox.Services.winmd appears in the References node.
  • Intellisense does not find anything in Microsoft.Xbox namespace.

Then (workaround):

  • Downgrade UWP packages to 5.4.1
  • Close and reopen solution

Observe:

  • Microsoft.Xbox.Services.winmd does appear in the References node.
  • Intellisense finds everything under Microsoft.Xbox as expected.

I also noticed that I can get everything to work properly if I build the xbox-live-api project from source with VS2017. This also required me to upgrade the build tools in the vcxproj to 2017 for both the Xbox Live services project and the dependency cpprestsdk.

No way to tell which call an event relates to in StatisticsManager

From: https://forums.xboxlive.com/questions/76605/two-questions-about-statisticsmanagerdowork.html?childToView=76685#comment-76685

GetLeaderboard results in a GetLeaderboardComplete event. How can we associate the event with the call which precipitated it? Ordinarily from the pattern the managers are using I'd expect GetLeaderboard to return some integer which can be matched with the StatisticEvent event, but I can't find anything. Without this, it's very hard to expose the API in our engine because we cannot associate callbacks supplied to our API with a GetLeaderboard call, to the event with which to call them.

XboxLiveUser Behavior on PC vs XBox

I am running into inconsistent behavior with this code on XBox vs PC:

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

On PC this always works. On XBOX this works if I create a new UWP store app and register and enable XBOX Services. For a legacy Store app that is unpublished it acts like a no-op. On the XBox the XboxLiveUser instance does not have any data populated and the SignInAsync command doesn't do anything. No errors either.

To get this to work on XBox I just have to change service configuration to my newly created app ... but I'd like to add Xbox Live to my existing (but not published) app.

Not sure how to proceed or whether this might be a bug or data issue relating to an older app store submission?

Building to UWP error

Hey these are the errors i am getting

http://imgur.com/a/RLCng

I do not understand what is causing this. I imported the plugin from the github page and when building to windows 10 UWP i get this build error

Presence Filter Enumeration Has Inconsistent Values

The presence filter enumeration seems to be inconsistent in its values relating to players which have interacted with the title. The enumeration uses 'All' both to refer to 'both offline and online' and 'both having played the game or is playing the game', this seems to have left gaps in the enumeration, for instance there is no "Has played the game and is online or offline" or "Has played the game and is online", or at least that's how it appears. There is also no "has not played the game and is online" or "has not played the game and is offline".

Specifically, I need "Has played the game and is online" and "Has not played the game and is online", so that I can easily separate my friends list into "Online playing the title", "Online has played the title" and "online has not played the title", so that in our limited UI, we always prefer more optimal friends.

I wonder if this filter would be better exposed as a bitfield. (online|offline, has played|has not played, is playing|is not playing).

https://github.com/Microsoft/xbox-live-api/blob/c38e851750491a2e68c2867080204a4706b5a15f/Source/Services/Social/WinRT/PresenceFilter_WinRT.h

Compile Error: multiplayer_session_constants.cpp

The transform of targetLocationKey to lower is causing the compiler to complain:

1>multiplayer_session_constants.cpp
1>e:\program files\microsoft visual studio\2017\community\vc\tools\msvc\14.10.25017\include\algorithm(946): error C2220: warning treated as error - no 'object' file generated
1>e:\program files\microsoft visual studio\2017\community\vc\tools\msvc\14.10.25017\include\algorithm(961): note: see reference to function template instantiation '_OutIt std::_Transform_unchecked<wchar_t*,wchar_t*,int(__cdecl *)(int)>(_InIt,_InIt,_OutIt,_Fn1 &)' being compiled
1> with
1> [
1> _OutIt=wchar_t *,
1> _InIt=wchar_t *,
1> _Fn1=int (__cdecl *)(int)
1> ]
1>e:\program files\microsoft visual studio\2017\community\vc\tools\msvc\14.10.25017\include\algorithm(971): note: see reference to function template instantiation '_OutIt std::_Transform_no_deprecate<_InIt,_OutIt,int(__cdecl *)(int)>(_InIt,_InIt,_OutIt,_Fn1 &)' being compiled
1> with
1> [
1> _OutIt=std::_String_iterator<std::_String_val<std::_Simple_types<wchar_t>>>,
1> _InIt=std::_String_iterator<std::_String_val<std::_Simple_types<wchar_t>>>,
1> _Fn1=int (__cdecl *)(int)
1> ]
1>e:\ueuwp\xbox-live-api\source\services\multiplayer\multiplayer_session_constants.cpp(496): note: see reference to function template instantiation '_OutIt std::transform<std::_String_iterator<std::_String_val<std::_Simple_types<wchar_t>>>,std::_String_iterator<std::_String_val<std::_Simple_types<wchar_t>>>,int(__cdecl *)(int)>(_InIt,_InIt,_OutIt,_Fn1)' being compiled
1> with
1> [
1> _OutIt=std::_String_iterator<std::_String_val<std::_Simple_types<wchar_t>>>,
1> _InIt=std::_String_iterator<std::_String_val<std::_Simple_types<wchar_t>>>,
1> _Fn1=int (__cdecl *)(int)
1> ]
1>e:\program files\microsoft visual studio\2017\community\vc\tools\msvc\14.10.25017\include\algorithm(946): warning C4244: '=': conversion from 'int' to 'wchar_t', possible loss of data
1>Done building project "Microsoft.Xbox.Services.140.UWP.WinRT.vcxproj" -- FAILED.

I modified the transform some to get around this error but not sure how it would apply globally:

    std::locale loc;
    std::transform(
        targetLocationKey.begin(),
        targetLocationKey.end(),
        targetLocationKey.begin(),
        [loc](wchar_t c) -> wchar_t { return std::tolower(c, loc); });

If the original does compile then maybe I'm missing an include or some other setting.

Inconsistency between GetLeaderboard and GetSocialLeaderboard in Statistics Manager

It seems like GetSocialLeaderboard is returning the wrong value for StatisticName. If I call GetLeaderboard, it correctly returns the name of the statistic itself, but if I call GetSocialLeaderboard it incorrectly returns the display name instead.

Here is my setup:

image

This is the result when I call:

GetSocialLeaderboard( <myuser>, "DistanceTravelled", ... );

image

This is the result when I call:

GetLeaderboard( <myuser>, "DistanceTravelled", ... );

image

This is compounding #341

Calling UpdateAchievementAsync throws an exception

I've found that calling UpdateAchievementAsync with a value for percentComplete which matches the value the achievement already has on the backend returns a 304 (not modified), which makes perfect sense. However, the RT API is interpreting this as InvalidArgumentException.

This is making it hard to work with the API, as when running under the debugger we are getting first chance exceptions for any achievement we happen to have unlocked.

Here's some output from it happening. Here we call UpdateAchivementAsync with a percentComplete value of 100 when the value on the backend is already 100. This is from the Feb QFE 2 XDK:

001037|024612|000428| [XBOX SERVICE CALL] #1
001037|024612|000428| [HTTP Method]: POST
001037|024612|000428| [URI]: https://achievements.xboxlive.com/users/xuid(REDACTED)/achievements/REDACTED/update
001037|024612|000428| [Request Headers]: Accept-Language: en-US,en; Content-Length: 182; Content-Type: application/json; charset=utf-8; User-Agent: XboxServicesAPI/2017.11.20171204.01; x-xbl-contract-version: 2; 
001037|024612|000428| [Authorization Header]: XBL3.0 REDACTED
001037|024612|000428| [Signature Header]: REDACTED
001037|024612|000428| [Request Body]: {"achievements":[{"id":"3","percentComplete":100}],"action":"progressUpdate","serviceConfigId":"REDACTED","titleId":REDACTED,"userId":"REDACTED"}
001037|024612|000428| [HTTP Status]: 304 [HTTP_E_STATUS_NOT_MODIFIED] 
001037|024612|000428| [Response Headers]: Cache-Control: no-cache, no-store; Content-Length: 0; Date: Wed, 14 Mar 2018 17:51:52 GMT; Expires: -1; MS-CV: BPRRi/vf0EOfl1xJYojKkw.0; Pragma: no-cache; X-Content-Type-Options: nosniff; 
001037|024612|000428| [Response Body]: ""
Exception thrown at 0x000001065369390A in REDACTED.exe: Microsoft C++ exception: Platform::InvalidArgumentException ^ at memory location 0x000002077877F698. HRESULT:0x80070057

Exception thrown at 0x000001065369390A in REDACTED.exe: Microsoft C++ exception: Platform::InvalidArgumentException ^ at memory location 0x00000207784EF510. HRESULT:0x80070057

Exception thrown at 0x000001065369390A (kernelx.dll) in REDACTED.exe: 0xE06D7363: Microsoft C++ Exception (parameters: 0xCCCCCCCC19930520, 0x00000207784EEF10, 0x0000010658830AE0, 0x0000010658730000).

Xbox Live SDK 1612 switch_account() call stopped working

Hi there,

We've been using the call to switch_account() for switching accounts in our game on Windows 10 until recently without problems. We are on Xbox Live SDK 1612 now and don't plan to update to latest version or use the account picker API, so ideally would like to keep what is already working.

After some debugging, it's observed that the result of the async operation to switch_account() returns success state with the same account that is already selected, but no UI window is shown in order to allow choosing a new user.

Could you please help?

Regards,
Jorge

Samples not compiling


Hi everybody,
I don't know if this is the right place to report an issue, so let me know if I should turn to StackExchange instead.
In a nutshell, it looks like the project "Microsoft.Xbox.Services.140.UWP.Cpp.vcxproj" does not compile due to missing files (I was following the "CreatorsCppTestApp" sample - I got the DirectX part under control). The file that has the problem is "pch_common.h", and the missing files can be summarized with the following piece of code:

`
#include <cpprest/http_client.h>
#include <cpprest/filestream.h>
#include <cpprest/http_listener.h>       // HTTP server
#include <cpprest/json.h>       // JSON library
#include <cpprest/uri.h>       // URI library
`

I just downloaded the zip file (I saw that there were some commits done about 6 hours ago) and retry. close but no cigar.
Any help is greatly appreciated!!!!

Manuel

SignInAsync Inconsistency between Xbox and UWP.

Hi,

I have noticed an inconsistency between XB1 and UWP when it comes to the UI showing when calling SignInAsync(). The UI will show every time when called on the XB1 but it will only show if the user is not signed in on UWP.

When the user switches user via the Main Menu we kick back to the title screen then call SignInAsync() where we expect it to open the UI to allow the user to switch to a different user. This works as expected on XB1.

Maybe I am missing something or should call something to force a log out?

Thanks,
Phil

pplx::create_task does not compile with winrt::Windows::Foundation::IAsyncOperation return type

pplx::create_task does not support cppwinrt IAsyncOperation types when programming with the XDK. The following code does not compile (the return type of pplx::create_task resolves to _BadResultType):

typedef winrt::SomeXDKResultType TokenResult;
TokenResult tokenResult = nullptr;
pplx::task t = pplx::create_task(firstUser.SomeXDKFunction(TEXT("POST"), *uri, TEXT("")))
.then([&](pplx::task tokenTask) { ...

The following code compiles, but requires regular winrt:

typedef SomeXDKResultType^ TokenResult;
TokenResult tokenResult;
pplx::task t = pplx::create_task(firstUser->SomeXDKFunction(ref new Platform::String(TEXT("POST")), ref new Platform::String(*uri), ref new Platform::String(TEXT(""))))
.then([&](pplx::task tokenTask) {...

Interop with cppwinrt would be quite useful in many Xbox Live programming scenarios.

Bulk Update Achievements

We are looking into some rate limiting issues, and we noticed that the Fiddler traces for achievements take an array of achievements: {"achievements":[{"id":"42","percentComplete":100}],"action":"progressUpdate","serviceConfigId":"-----","titleId":-----,"userId":"-----"}

However, there is no method in the XboxLive SDK to utilize this. This means that we have to send 6 service requests instead of just 1 when we complete some in game activities that achievements are linked to.

XDK Version 180200 (Microsoft::Xbox::Services::Achievements::AchievementService)
UpdateAchievementAsync (In Platform::String^ xboxUserId, In Platform::String^ achievementId, In uint32 percentComplete)
UpdateAchievementAsync (In Platform::String^ xboxUserId, In uint32 titleId, In Platform::String^ serviceConfigurationId, In Platform::String^ achievementId, In uint32 percentComplete)

No method allows multiple achievements to be passed. Is this intentional? We feel a method to allow a bulk operation would be beneficial.

get_response_with_auth wrong on cpp?

Hi,

This method seems wrong:-

virtual pplx::task<std::shared_ptr<http_call_response>> get_response_with_auth( _In_ const std::shared_ptr<XBOX_LIVE_NAMESPACE::user_context>& userContext, _In_ http_call_response_body_type httpCallResponseBodyType = http_call_response_body_type::json_body, _In_ bool allUsersAuthRequired = false ) = 0;
It takes as a parameter a user_context that is only forward declared in types.h, therefore you can't call std::make_shared with an xbox_live_user.

Am I missing something?

The WinRT version allows you to pass a User and works fine.

Thanks

Stat Name Null

After getting the StatisticEventType::GetLeaderboardComplete event, the stat name contained in the LeaderboardRow is null:

                LeaderboardResultEventArgs^ LbResultEventArgs = safe_cast<LeaderboardResultEventArgs^>(Event->EventArgs);
                LeaderboardResult^ LbResult = LbResultEventArgs->Result;

                for (LeaderboardRow^ Row : LbResult->Rows)
                {
                    FString RowText = FString::Printf(TEXT("Leaderboard row: User %s, Stats "), Row->Gamertag->Data());
                    for (unsigned int i = 0; i < Row->Values->Size; ++i)
                    {
                        LeaderboardColumn^ statCol = LbResult->Columns->GetAt(i);
                        Platform::String^ statName = LbResult->Columns->GetAt(i)->DisplayName;

                        RowText.Append(FString::Printf(TEXT("(%s : %s) "), LbResult->Columns->GetAt(i)->DisplayName->Data(), Row->Values->GetAt(i)->Data()));
                    }

                    UE_LOG_ONLINE(Warning, *RowText);
                }

social_manager doesn't signal event when user changes online status

Repro:

  • Use an XBL enabled app (eg. Xbox One home app) to change a remote XBL user's "Appear" status from "Appear Online" to "Appear Offline"

Expected:

  • The social_manager (which has that user in a social_group) should signal an event that the given user has gone offline.

Observed:

  • No events are signaled by the social_manager for this user.

This is true for both going from "offline" to "online" as well.

Also, it appears that the library is getting the notification of the status change. In fiddler, I can see these requests go out when toggling "Appear" back and forth on the remote user:
GET https://peoplehub.xboxlive.com/users/xuid()/people/xuids()/decoration/detail,follower,preferredColor,avatar?cacheBuster=4

{"people":[{"xuid":"<snipped xuid>",
...
"isCloaked":true,
...}

GET https://peoplehub.xboxlive.com/users/xuid()/people/xuids()/decoration/detail,follower,preferredColor,avatar?cacheBuster=5

{"people":[{"xuid":"<snipped xuid>",
...
"isCloaked":false,
...}

multiplayer_client_manager::match_client crashes when latest_pending_read() is null

We have a Unity game, in certain circumstances it'll cancel the matchmaking/match when it isn't even in an online match/matchmaking session - we could further improve our logic/flow, but either way, we should not get a crash in this scenario. The following fixes this:

multiplayer_client_manager.cpp

std::shared_ptr<multiplayer_match_client>
multiplayer_client_manager::match_client()
{
    return latest_pending_read()->match_client();
}

change to:

std::shared_ptr<multiplayer_match_client>
multiplayer_client_manager::match_client()
{
    if (latest_pending_read() == nullptr)
    	return nullptr;

    return latest_pending_read()->match_client();
}

Caching Stat Issue

Even if the stat is deleted from Dev Center, and publish, the stat remains relentlessly on my local machine. How do I clear the cache?
Is there a setting to ensure updates are monitored more frequently.

Invalid JSON string exception on SignInSilentlyAsync/SignInAsync?

I just released my game last Friday. Overall it was smooth, but it looks like some (not all) of my users are getting JSON parsing exceptions in either the SignInSilentlyAsync or SignInAsync methods of the XboxLiveUser class. These are first time users who have never signed into the game before. Some have recovered over time, but others have continuously gotten the issue over the last few days. I got one of them to send me a printout of the exception information:

signinerror

My calling code is:

`

     try
     {
         _errorString = string.Empty;
         var task = this._user.SignInSilentlyAsync(UIDispatcher).AsTask();
         task.Wait();

         if (task.Result.Status == SignInStatus.UserInteractionRequired)
         {
             task = this._user.SignInAsync(UIDispatcher).AsTask();
             task.Wait();
         }

         IsSignedIn = task.Result.Status == SignInStatus.Success;

         if (IsSignedIn)
         {
             _xboxLiveContext = new Microsoft.Xbox.Services.XboxLiveContext(_user);
         }
         else
         {
             GlobalLogic.Instance.LogError("Failed to sign in: " + task.Result.Status);
             _errorString = "Sign In Failure: " + task.Result.Status;
             IsSignedIn = false;
             IsSigningIn = false;
             return;
         }
     }
     catch (Exception ex)
     {
         GlobalLogic.Instance.LogError("Error signing in: " + ex);
         _errorString = "Sign In Exception: " + ex;
         IsSignedIn = false;
         IsSigningIn = false;
         return;
     }

`

This is inside a coroutine; I'm not using async/await because my project is still on .NET 3.5. I'm using the 1804 Release of the Xbox Services UnityPackage. I've tried using the 1807 Release but had to roll back because an exception at sign in was causing my app to fail cert. My game is a Unity 5.6.4f UWP application.

Is this an issue inside the SignIn methods? Do they try to parse some JSON? Is there a workaround I can use to get my customers into the game? Or is there a better way I can call the methods? I'm going to try to wrap the SignInSilentlyAsync() method independently so if that's the one throwing the exception, it won't take down the other one, but other than that, I'm not sure what to do on my end.

Any ideas are welcome; if you need the gamertags of people experiencing this or more/all of my game code to investigate, I'd be happy to send you more information. I've got one customer who is experiencing this threatening to sue me for his $2.99 back...so I'm trying to figure out a workaround as soon as possible. :D

Thanks!
Mike Palotas

What features of WinRT API are implemented?

Hello!

I've tried to retrieve anything from XBOX Live Services for about 2 weeks.

I managed to:

  • log in my test account
  • retrieve basic information about the user
  • create context for the user
  • get the list of achievements for the game

I didn't manage to:

  • set any award for the user
  • set or get any statistic of the user
  • report any score or request any score for the user
  • send user presence

Or anything at all.

Tried everything, requesting every possible instances, services or anything at all I could find in the Xbox Live WinRT SDK documentation. Everything on the DevCenter is assured to be set up properly, same with the application (store association, xboxservices.config, storeKeys and so on).

Is the more than a half of the content of Xbox Live even implemented in the API?

Or should I immediately start to recall my knowledge about C++ and start from scratch without it?

Or maybe there are more docs, that I'm not aware of?

SwitchAccountAsync function is missing

Hi, I'm an ID@Xbox developer using C# and MonoGame to program a UWP Xbox One game. I'm using the latest version of XSAPI.UWP from NuGet. There is a requirement that we need an option on the main menu to let the player switch profiles... I see no actual way to do this in XSAPI. If you look in the CHM documentation there is a function in XboxLiveUser called SwitchAccountAsync() but when trying to use this function in XSAPI it's nonexistent.

I've posted a thread here detailing how I'm currently trying to switch users but I can't get anything working: https://social.msdn.microsoft.com/Forums/en-US/31835e63-c766-4d7a-8588-f2fd2f1f693b/uwp-changing-users-during-game?forum=xboxlivedev

Microsoft told me via email that UWP games are not exempt from this requirement, so either I'm not seeing how to do this or the functions I need are missing.

Would really appreciate some assistance!

Thanks,

Michael

Can't load achievements from WinRT JS API

I am trying to implement support for Achievements in Construct 2 and Construct 3 using the WinRT JS API (which unfortunately does not appear to be documented anywhere, so I'm mainly guessing calls from code in this repo and using the debugger). I have a title set up and I have been told it has had ID@Xbox features enabled. I can see a section to set up achievements in the dev center, so I've added two.

Calling xboxLiveContext.achievementService.updateAchievementAsync(xboxUserId, achievementId, 100) fails with "The parameter is incorrect.". I am certain xboxUserId is correct, since it works for other API calls. The achievementId apparently ought to be a string, even though the dev center lists achievement IDs as what appear to be numbers (1 and 2 for the two achievements I've added); passing either "1" or the achievement name fails with "The parameter is incorrect."

Calling the following:

xboxLiveContext.achievementService.getAchievementsForTitleIdAsync(
    xboxUserId,
    titleId,
    Microsoft.Xbox.Services.Achievements.AchievementType.all,
    false,
    Microsoft.Xbox.Services.Achievements.AchievementOrderBy.default,
    0,
    100)

succeeds with an empty list, so it appears the configured achievements in the dev center aren't accessible from the API.

It's taken literally 2 years for us to get to the point we can configure achievements since we first tried to get in touch with Microsoft, and we are at the point of Construct users on the ID@Xbox program having their contracts come up for expiry. Please help us get these features working!

DeleteStatistic Does Not Appear To Be Working

I'm trying to "reset" my stats by deleting them using:
https://github.com/Microsoft/xbox-live-api/blob/master/Source/Services/Stats/Manager/WinRT/StatisticManager_WinRT.h#L132

void Scenarios::Scenario_DeleteAllStats(_In_ MainPage^ ui, Microsoft::Xbox::Services::XboxLiveContext^ xboxLiveContext)
{
    StatisticManager^ mgr = StatisticManager::SingletonInstance;
    if (mgr == nullptr) return;

    Array<String^>^ Stats = {
        L"Score",
        L"HighScore",
        L"OceanWaveHighScore",
        L"ElvenRuinsHighScore",
        :
    };

    for (String^ stat : Stats)
    {
        mgr->DeleteStatistic(xboxLiveContext->User, stat);
    }
    mgr->RequestFlushToService(xboxLiveContext->User);
}

But after executing the above I am able to read the old stat values using Scenario_ReadStat.

GetForUserAsync not return and no exception

I using 1806 QFE Release.
When popup notfinish synchronize dialog then close application on PC.
Look at Task Manager still have a Xbox Game UI. I think this is controll the dialog.
Launch application again and call GetForUserAsync but not retuan and no exception, can not continue game.
Same kind of issue has a XboxOne in case occur exception on PickSingleUserAsync.
but i can slove catch exception and retry again PickSingleUserAsync untill close the dialog.

I want try new release but 1807 Release is looks like a 1804.
Please check this link.
https://github.com/Microsoft/xbox-live-api/releases

Best

Unhelpful StackOverflow exception if the XboxServices.config file is missing

I was trying to build a sample app to demonstrate another issue, and run into this, think it should be fixed as it could get extremely frustrating if someone forgets to assign XboxServices.config to the project with Content and CopyIfNew properties set.

The issue is happening on Windows 10, Debug mode targeted to x64 (Target 16299, MinVersion 10240)
Microsoft.Xbox.Live.SDK.WinRT.UWP nuget package.
Nuget package version is v2018.4.20180411.2 so i think it is version 1804
I have installed XDK 1804 from https://developer.xboxlive.com/
OS is Windows 10 build 16299
IDE is Visual Studio Professional 2017 version 15.6.6

SignInAsync crashes on UWP SUA if Xbox One S not connected to the internet

SignInAsync crashes the application in a UWP SUA environment on an Xbox one S with the latest release (1806 QFE 3), and when building from the latest master at 2166ffc

To make sure, i made a small repro project with my build from master by replacing the .dll and .winmd files of the unity plugin. Everything works just fine if there is connection, but if the xbox is disconnected, the app crashes after a few seconds after calling SignInAsync.

Here's the project if you want to try it out for yourself:
https://drive.google.com/open?id=1BqfLjVkXVGnWO_m0RRQGAZz7qnvMnn4h
The built unity project can be found in Builds/WSA

Regards

Trying to download Xbox-live-api nuget package fails from Visual Studio

This is the third machine i try downloading the nuget package without success, so i thought i could add it here if someone knows how to go around the issue.

  CACHE https://www.nuget.org/api/v2/Packages(Id='Microsoft.Xbox.Live.SDK.WinRT.UWP',Version='2018.4.20180411.2')
Restoring packages for C:\Repos\DoomAndDestiny\XNA4\Common\Universal\project.json...
  GET https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP'
  OK https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP' 759ms
  GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP/2018.4.20180411.2
  OK https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP/2018.4.20180411.2 741ms
  GET https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Debug'
  GET https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release'
  GET https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug'
  GET https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Release'
  OK https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Debug' 282ms
  GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Debug/2018.4.20180411.2
  OK https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Release' 538ms
  OK https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release' 586ms
  GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Release/2018.4.20180411.2
  GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release/2018.4.20180411.2
  OK https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug' 1016ms
  GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug/2018.4.20180411.2
  OK https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Debug/2018.4.20180411.2 943ms
  OK https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Release/2018.4.20180411.2 1085ms
Failed to download package 'Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release.2018.4.20180411.2' from 'https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release/2018.4.20180411.2'.
The HTTP request to 'GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release/2018.4.20180411.2' has timed out after 100000ms.
  GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release/2018.4.20180411.2
Failed to download package 'Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug.2018.4.20180411.2' from 'https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug/2018.4.20180411.2'.
The HTTP request to 'GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug/2018.4.20180411.2' has timed out after 100000ms.
  GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug/2018.4.20180411.2
Failed to download package 'Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release.2018.4.20180411.2' from 'https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release/2018.4.20180411.2'.
The HTTP request to 'GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release/2018.4.20180411.2' has timed out after 100000ms.
  GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release/2018.4.20180411.2
Failed to download package 'Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug.2018.4.20180411.2' from 'https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug/2018.4.20180411.2'.
The HTTP request to 'GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug/2018.4.20180411.2' has timed out after 100000ms.
  GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug/2018.4.20180411.2
Failed to download package 'Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release.2018.4.20180411.2' from 'https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release/2018.4.20180411.2'.
The HTTP request to 'GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release/2018.4.20180411.2' has timed out after 100000ms.
  GET https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release'
  OK https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release' 244ms
Failed to download package 'Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug.2018.4.20180411.2' from 'https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug/2018.4.20180411.2'.
The HTTP request to 'GET https://www.nuget.org/api/v2/package/Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug/2018.4.20180411.2' has timed out after 100000ms.
  GET https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release'
The feed 'nuget.org [https://www.nuget.org/api/v2/]' lists package 'Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release.2018.4.20180411.2' but multiple attempts to download the nupkg have failed. The feed is either invalid or required packages were removed while the current operation was in progress. Verify the package exists on the feed and try again.
  Unable to find package 'Microsoft.Xbox.Live.SDK.WinRT.UWP.Native.Release.2018.4.20180411.2'.
Time Elapsed: 00:05:05.2435265
========== Finished ==========

  OK https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug' 871ms
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Xbox.Live.SDK.WinRT.UWP.Netcore.Debug'

Connection speed is adsl 7mbps that is the standard connection speed in Italy. I suspect the package is so big that nuget has trouble downloading and times out while downloading.
To me this problem is strictly related to xbox-live-api as i never had any problems with other packages, even big ones as windows.core.sdk.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.