Closed changliucoding closed 1 year ago
Having this issue as well:
Traceback (most recent call last):
File "/Users/harris/src/voyager-test/main.py", line 12, in <module>
voyager = Voyager(
File "/Users/harris/src/Voyager/voyager/voyager.py", line 104, in __init__
self.env = VoyagerEnv(
File "/Users/harris/src/Voyager/voyager/env/bridge.py", line 42, in __init__
self.mc_instance = self.get_mc_instance()
File "/Users/harris/src/Voyager/voyager/env/bridge.py", line 67, in get_mc_instance
return MinecraftInstance(
File "/Users/harris/src/Voyager/voyager/env/minecraft_launcher.py", line 36, in __init__
self.mc_command = self.get_mc_command()
File "/Users/harris/src/Voyager/voyager/env/minecraft_launcher.py", line 74, in get_mc_command
code_url = input()
KeyboardInterrupt
Tried mobile & web but neither worked. Will dive into it to figure out why.
Turns out the error occurs on line 324 of the microsoft_account.py file in microsoft-launcher-lib. For some reason the get_authorization_token() function fails to return the expect JSON .
I went ahead and started diving into it, and at least for me, it seems to be an issue with the complete_login function of minecraft-launcher-lib. Specifically on line 355 in microsoft_account.py
account_request = authenticate_with_minecraft(userhash, xsts_token)
returns with a 403 FORBIDDEN.
I've tried completing the flow with and without the client secret, since it's now depreciated but no luck. Always {'path': '/authentication/login_with_xbox', 'error': 'FORBIDDEN'}
. Will continue looking into it.
@DeveloperHarris Hi, thanks a lot for your investigation. Since I cannot reproduce this error on my machine. I cannot provide further help. Maybe you can try to read the original login guide from minecraft-launcher-lib or create an issue there. If you have any findings, welcome to share them here.
Also having this issue, curious are you using a third party microsoft account? E.g. through gmail
Unfortunately the login guide from minecraft-launcher-lib doesn't provide any help here so I ended up digging through the code to try and debug, and while I narrowed it down to the authenticate_with_minecraft() call, I couldn't find any reason why minecraft-launcher-lib was getting a 403 Forbidden error during the Minecraft Oauth2 flow, especially because it successfully authenticated with Microsoft & Xbox, but couldn't authenticate with Minecraft's API.
I'm using my Microsoft account (attached to my Gmail). I recently had to link my Minecraft account to my Microsoft account, so maybe it has something to do with that? Unsure. Either way, I ended up just using the mc_port method to get it to work.
More info on the oauth2 flow can be found at https://wiki.vg/Microsoft_Authentication_Scheme
I have same issue.
C:\Users\xxxxx\anaconda3\lib\site-packages\minecraft_launcher_lib\microsoft_account.py
def authenticate_with_minecraft(userhash: str, xsts_token: str) -> MinecraftAuthenticateResponse:
"""
Authenticate with Minecraft
"""
parameters = {
"identityToken": f"XBL3.0 x={userhash};{xsts_token}"
}
header = {
"Content-Type": "application/json",
"user-agent": get_user_agent(),
"Accept": "application/json"
}
r = requests.post("https://api.minecraftservices.com/authentication/login_with_xbox", json=parameters, headers=header)
import pdb; pdb.set_trace()
return r.json()
(Pdb) r
--Return--
> c:\users\xxxxx\anaconda3\lib\site-packages\minecraft_launcher_lib\microsoft_account.py(230)authenticate_with_minecraft()->{'error': 'FORBIDDEN', 'path': '/authenticat...gin_with_xbox'}
-> return r.json()
Got the same error as well with both web
and Public client/native
. Start digging.
yse, I tried both conditions, but it' doesn't work.
Why we got 403 error?
Which authentication we couldn't pass?
Gave up and use mc_port
. Works.
Unfortunately the login guide from minecraft-launcher-lib doesn't provide any help here so I ended up digging through the code to try and debug, and while I narrowed it down to the authenticate_with_minecraft() call, I couldn't find any reason why minecraft-launcher-lib was getting a 403 Forbidden error during the Minecraft Oauth2 flow, especially because it successfully authenticated with Microsoft & Xbox, but couldn't authenticate with Minecraft's API.
I'm using my Microsoft account (attached to my Gmail). I recently had to link my Minecraft account to my Microsoft account, so maybe it has something to do with that? Unsure. Either way, I ended up just using the mc_port method to get it to work.
More info on the oauth2 flow can be found at https://wiki.vg/Microsoft_Authentication_Scheme
Hi, do you know how to make MC running in the backend via using the mc_port method? While running, I cannot move the mouse cursor out of the game.
@lukaemon
Thanks advice!! I counld start Voyager.
Do you know the difference of these ways to play? mc_port way is not recommended?
Don't know the reason. I saw in other issue that the author mentioned you have to restart the process manually if the process is disconnected somehow with mc_port
. Don't know if other factors are in the play.
Don't know the reason. I saw in other issue that the author mentioned you have to restart the process manually if the process is disconnected somehow with
mc_port
. Don't know if other factors are in the play.
I guess that is the main reason. I ran all the iterations set in the code and did not reproduce the performance in the paper. BTW, did you manage to reproduce the results in the paper.
This change is the reason: https://help.minecraft.net/hc/en-us/articles/16254801392141
This change is the reason: https://help.minecraft.net/hc/en-us/articles/16254801392141
It seems we should apply for the permission.
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.
Hi, I have one error like #34 , but I tried both Public client/native (mobile & desktop) and Web, but [None of them works]. Hope can get one solution for this , thanks!
token = token_request["access_token"] KeyError: 'access_token'