Uh oh!
There was an error while loading. Please reload this page.
Port PoB 2 Oauth API - #9812
Conversation
Uh oh!
There was an error while loading. Please reload this page.
vaisest
commented
Apr 25, 2026
vaisest
commented
Apr 26, 2026
The changes seem to break mcagnion's tests, even though the functionality seems to work. I'm not really seeing why that is. Otherwise everything seems to work so far |
mcagnion
commented
Apr 26, 2026
If |
vaisest
commented
Apr 26, 2026
Thanks, that was indeed it. Seems very obvious in hindsight lol |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
bde11fd to
78a929aCompare| describe("TestImport", function() | ||
| local dkjson = require "dkjson" | ||
| local sampleJson, err = io.open("../spec/System/SampleCharacter.json", "r") |
There was a problem hiding this comment.
Hopefully testing like this is ok? This is probably not very portable across newer leagues, but I couldn't think of anything more practical for testing passive tree imports. This is mostly just what the GGG API returned for my current league lvl 99 kboc hierophant
I've noticed that there's something in the compare tab that breaks the trade tool. To reproduce:
This isn't caused by this PR either as it's also present on the beta version. I tried to fix it, but couldn't figure out what was causing it. My assumption is it could be related to how the compare tab wraps the items tab? Edit: possibly caused by compare tab overwriting the onframe function when it wraps the tab? Edit2: fixed |
vaisest
commented
May 13, 2026
Last couple issues fixed. Namely asia realms were removed, because apparently China and Taiwan use Chuanhsing's PoB version and convert profiles with poedb.tw, meaning they're unnecessary (and probably dont work) in pob. Comparison tab import button was also fixed. It imports from either oauth or the account selection (in that order) |
vaisest
commented
May 21, 2026
I added the test from #1922. I'm not sure it's very meaningful, but it passes and I tried to improve the error handling and presentation in general. |
14b5558 to
bce54b8Compare2dc2aab to
b837d38CompareWas using the poe 2 trade site url and also there was an issue with sorting by currency when you didn't download the currency rates yet
Want to remove poesessid from the name as it now isn't relevant
Uh oh!
There was an error while loading. Please reload this page.

I can't find relevant issues, but this primarily fixes annoying issues with POESESSID expiring all the time. For imports, this also automatically adds bandit and pantheon choices, as the OAuth API contains info for them.
Probably enables #5418 via the oauth API, though the current scope does not include
account:stashes.This probably fixes#8750, fixes#9176, fixes#8348, fixes#5621, fixes#7183, fixes#6141, and fixes#5316, fix#9907, fixes#5360, fixes#7542.
Description of the problem being solved:
Steps taken to verify a working solution:
What this PR still needs
I think this is getting quite close to done, but seeing as it is making a lot of changes to a vital part of the UI, it probably needs a lot more testing. I'm not sure I got all of the differences between the PoE site character data and API data. There might be some legacy things that I don't know about, and I'm not sure about other quirks (like for example the league field in the API is nullable: why?). I also can't test other realm imports since I've only ever played on PC.
The account name import doesn't seem to report 404s at all. I'm not sure if this ever worked, because the website just results in a 403 for me.
Questions about the UX/UI design were also raised on Discord.
Authorization for the trade league query is currently disabled due to it resulting in 403s. Not sure why, and I don't think that happened previously. Perhaps some GGG side changes happened.This seems to be working againLink to a build that showcases this PR:
N/A
Before screenshot:
After screenshot: