Playfab integration

I'm able to use playfab independently and photon independently, but I am using the photon add-on for playfab and I'd like to know what API I need to pass to the connect. Realtime API and Chat API don't work, they simply give authentication errors.

Comments

  • JohnTube
    JohnTube ✭✭✭✭✭
    edited October 2017
    Hi @MajinSephiroth,

    Thank you for choosing Photon!

    We, ExitGames and PlayFab, are working on a plan to make it possible for you to integrate Photon and PlayFab and keep using them independently/separately: we call this "manual integration" or "parallel setup".

    We are still in the middle of specifying the required steps so I can't share them here on the forum.
    Send an email to developer@photonengine.com so we could share more details.
  • Hey @JohnTube,

    I think I wasn't able to express my question properly. I wanted to have photon working through playfab using the playfab add-on.

    My conundrum comes from being unable to call ExitGames::LoadBalancing::Client(*mpListener, *AppID, *appVersion); because AppID doesn't work with the Realtime API provided by the playfab add-on.

    I can still shoot an email, but I wanted to clarify a bit more what I was trying to accomplish first :)
  • JohnTube
    JohnTube ✭✭✭✭✭
    edited October 2017
    Hi @MajinSephiroth,

    OK I see.

    You need to use custom authentication as follows:

    1. Login to PlayFab
    2. Get Photon authentication token using GetPhotonAuthenticationToken
    3. Connect using the overload method that accepts authentication values object after you set query string parameters to:
    "username" PlayFabId of the logged in user.
    "token" token retrieved in 2.
  • MajinSephiroth
    edited October 2017
    Hey @JohnTube,

    LoadBalancingClient constructor only has 2 overloads. One takes in a LoadBalancingClient, the other requires the Application ID. Am I missing something?
  • Hi @MajinSephiroth.

    The AuthenticationValues are a parameter of Client::connect(), not of the constructor of class Client.

    Example code:
    
    mLoadBalancingClient.connect(ExitGames::LoadBalancing::AuthenticationValues().setUserID(USER_ID).setType(ExitGames::LoadBalancing::CustomAuthenticationType::CUSTOM).setParametersWithUsernameAndToken(PlayfabID.c_str(), token.c_str()), PLAYER_NAME);
    
  • Hey @Kaiserludi
    So, I don't need to provide a valid Application ID for the constructor?
  • Hi @MajinSephiroth.

    Of course you also need to provide a valid app ID to the constructor.
    However additionally to that you also need to provide your playfab ID and token to connect() with the AuthenticationValues.
    Note that when using Photon with PlayFab you need to use the Photon appID that you got from PlayFab. PlayFabs authentication does not accept your client if you use a Photon appID that you have set up independently from PlayFab.
  • MajinSephiroth
    edited November 2017
    Hey @Kaiserludi ,

    I think that's where my confusion is stemming from. In PlayFab I get two ID's for Photon, a Realtime ID and a Chat ID. Neither of which are Photon App ID. So, would I be using the Realtime ID as the Photon appid?

    I should also clarify that I'm using this with Unreal Engine 4.17.2
  • Hi @MajinSephiroth.


    Neither of which are Photon App ID

    What do you mean by that?
    One of them is an appID for Photon Realtime, the other one is one for Photon Chat. You need to use the Realtime one for LoadBalancing-cpp and the Chat one for Chat-cpp.
  • Hey @Kaiserludi,

    Ah I see, didn't think LoadBalancing-cpp used the Realtime ID. My mistake. Thanks for the clarification.