API:v2/account change for PoF — Guild Wars 2 Forums
Home API Development

API:v2/account change for PoF

Zok.4956Zok.4956 Member ✭✭✭
edited September 14, 2017 in API Development

When I get the data of my account that has purchased and unlocked PathOfFire the API still says in field “Access” only “HeartofThornes” and not “PathOfFire”.
And because an account can have purchased PathOfFire but not HeartOfThornes and vice versa, it maybe would be a good idea to change the value of the field “access” to a comma separated list or to a real array where the values

  • None
  • PlayForFree
  • GuildWars2
  • HeartOfThorns
  • PathOfFire

could be independent from each other included.

For backward compatibility the field "access" could be a comma separated list or there could be a new field "accesses" which is a real array.

https://www.gw2gh.com/ - A GW2-Guild-Hall.
Register and check your guild leaderboard to see who is the best in your guild and who finished achievements first.

Tagged:

Comments

  • Elfo Bianco.3786Elfo Bianco.3786 Member ✭✭
    edited September 15, 2017

    Thumbs up for this request!!
    Here my ideas:

    • a new field "Accesses" or "AccessTo" as an array of strings would be the better solution while the existing "Access" field could be removed.
    • we can keep the "Access" field for a single core value (None, PlayForFree or Guild Wars2) and add a new one as an array of strings for all expansions that someone own (HeartOfThorns, PathOfFire and future expansions).

    I would not think about backward compatibility because with Path of Fire the existing field has no sense and in my opinion the first idea is the best one, because in any app I could get the list of accesses and work locally with only one object.

    Hoping for the change before PoF comes out...

  • The tentative change I have is to make access return an array starting Friday. The general argument against adding a separate field is that adding additional strings to the access field is going to break existing applications anyway.

    asdadasd

  • Zok.4956Zok.4956 Member ✭✭✭
    edited September 26, 2017

    Thanks, field access is now an array.

    Example:

            [access] => Array
                (
                    [0] => GuildWars2
                    [1] => HeartOfThorns
                    [2] => PathOfFire
                )
    

    If none of these three is set, I assume it is a F2P account.

    https://www.gw2gh.com/ - A GW2-Guild-Hall.
    Register and check your guild leaderboard to see who is the best in your guild and who finished achievements first.

  • So '3' means both expansions? (And presumably [4] would be expansion #3 and so on.)

    Hype is the path to the dark side. Hype leads to unfulfilled expectations. Disappointment leads to anger. Anger leads to disgust. Disgust leads to "oh, new shinies! I'm back!"

  • Zok.4956Zok.4956 Member ✭✭✭

    @Illconceived Was Na.9781 said:
    So '3' means both expansions? (And presumably [4] would be expansion #3 and so on.)

    It is not the ordering/index or the length of the list that should be evaluated, but the value of the array elements that exist in the list.

    Examples:
    An account with PoF but without HoT would have (0=> GuildWars2, 1=>PathOfFire)
    An account with Hot but without PoF would have (0=> GuildWars2, 1=HeartOfThornes)
    An account with HoT and PoF and the NextExpansion would have (0=> GuildWars2, 1=> HeartOfThornes, 2=> PathOfFire, 3=> NextExpansion).
    An account with PoF and the NextExpansion would have (0=> GuildWars2, 1=> PathOfFire, 2=> NextExpansion).

    https://www.gw2gh.com/ - A GW2-Guild-Hall.
    Register and check your guild leaderboard to see who is the best in your guild and who finished achievements first.

  • @Zok.4956 said:
    Thanks, field access is now an array.

    Example:

            [access] => Array
                (
                    [0] => GuildWars2
                    [1] => HeartOfThorns
                    [2] => PathOfFire
                )
    

    If none of these three is set, I assume it is a F2P account.

    There's theoretically a FreeToPlay flag that can go in there too. I don't think FreeToPlay is removed when you upgrade, so checking for the existence of one of the three you pointed out is probably the best way. I'm not entirely sure when GuildWars2 gets set -- my understanding of the game's feature codes is from the original F2P launch (when you had to buy the core game) -- I'm not sure if the FreeToPlay flag is even set anymore.

    asdadasd

  • @Zok.4956 said:
    It is not the ordering/index or the length of the list that should be evaluated, but the value of the array elements that exist in the list.

    Gotcha, thanks for the explanation.

    Hype is the path to the dark side. Hype leads to unfulfilled expectations. Disappointment leads to anger. Anger leads to disgust. Disgust leads to "oh, new shinies! I'm back!"

  • Zok.4956Zok.4956 Member ✭✭✭
    edited September 29, 2017

    @Lawton Campbell.8517 said:

    @Zok.4956 said:
    Thanks, field access is now an array.

    Example:

            [access] => Array
                (
                    [0] => GuildWars2
                    [1] => HeartOfThorns
                    [2] => PathOfFire
                )
    

    If none of these three is set, I assume it is a F2P account.

    There's theoretically a FreeToPlay flag that can go in there too. I don't think FreeToPlay is removed when you upgrade, so checking for the existence of one of the three you pointed out is probably the best way. I'm not entirely sure when GuildWars2 gets set -- my understanding of the game's feature codes is from the original F2P launch (when you had to buy the core game) -- I'm not sure if the FreeToPlay flag is even set anymore.

    In the game there is still a difference in features/functions between F2P and the "GW2 base game" and there are still players, that have purchased the license code for "GW2 base game", but not HoT or PoF. With the purchase of HoT or PoF the "GW2 base game" is included.

    So in my understanding the feature codesGuildWars2 and FreeToPlay are mutually exclusive.

    Well, but in the actual API-data they are not. :/

    I see account data where GuildWars2 is set together with FreeToPlay and I see account data, where GuildWars2 is set without FreeToPlay.

    So, the usage of FreeToPlay seems inconsistent to me. Maybe FreeToPlay gets set (and will not get reset) when the account is first created as a F2P-account and then upgraded later and only accounts, that were created before F2P was introduced have no FreeToPlay. In consequence this means that checking for FreeToPlay can not be used to verify if an account is actual a F2P-account.

    If HeartOfThorns or PathOfFire are set in the account data, GuildWars2 is always set, too. So I assume the absence of GuildWars2 means, it is a F2P account.

    My actual evaluation is now: It is a F2P-account if none of the "upgrade-feature-codes" (at the moment GuildWars2, HeartOfThorns,PathOfFire ) is set.

    https://www.gw2gh.com/ - A GW2-Guild-Hall.
    Register and check your guild leaderboard to see who is the best in your guild and who finished achievements first.

  • Lawton Campbell.8517Lawton Campbell.8517 ArenaNet Personal  

    AFAIK, the feature codes are sticky -- once you have a feature flag applied to your account, it doesn't get removed. So accounts that started with FreeToPlay will always have that flag (even post-upgrading); accounts that registered with a serial code won't have that flag.

    Does it make sense to strip FreeToPlay when other flags are on the account? I can make the API normalize the data a bit.

    asdadasd

  • Zok.4956Zok.4956 Member ✭✭✭

    @Lawton Campbell.8517 said:
    Does it make sense to strip FreeToPlay when other flags are on the account? I can make the API normalize the data a bit.

    Yes it makes sense in my opinion, because you then can see FreeToPlay as a state-code (if it is set, the account is actually F2P).

    On the other hand: FreeToPlay could also be removed completely because it is kind of redundant information and after that removal, a F2P account would have an empty access array (if any of GuildWars2 , HeartOfThorns, PathOfFire or Expansion3 would be set, it would not be a F2P account).

    https://www.gw2gh.com/ - A GW2-Guild-Hall.
    Register and check your guild leaderboard to see who is the best in your guild and who finished achievements first.

  • Zok.4956Zok.4956 Member ✭✭✭

    Thanks. access is now an array and PathOfFire is included. (actually it is since a few days but I haven't checked it before today).

    https://www.gw2gh.com/ - A GW2-Guild-Hall.
    Register and check your guild leaderboard to see who is the best in your guild and who finished achievements first.