initial commit
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
venv/
|
||||||
|
__pycache__/
|
||||||
|
.env
|
13
.vscode/launch.json
vendored
Normal file
13
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Python: Current File",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"justMyCode": true,
|
||||||
|
"envFile": "${workspaceFolder}/.env"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
46
main.py
Normal file
46
main.py
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Step 1. We begin with creating a Configuration, which contains the username and password for authentication.
|
||||||
|
import vrchatapi
|
||||||
|
from vrchatapi.api import authentication_api
|
||||||
|
from vrchatapi.exceptions import UnauthorizedException
|
||||||
|
from vrchatapi.models.two_factor_auth_code import TwoFactorAuthCode
|
||||||
|
from vrchatapi.models.two_factor_email_code import TwoFactorEmailCode
|
||||||
|
from totp import getTOTP
|
||||||
|
import os
|
||||||
|
|
||||||
|
configuration = vrchatapi.Configuration(
|
||||||
|
username = os.getenv("USER_NAME"),
|
||||||
|
password = os.getenv("USER_PASSWORD"),
|
||||||
|
)
|
||||||
|
|
||||||
|
group_id = ''
|
||||||
|
|
||||||
|
# Step 2. VRChat consists of several API's (WorldsApi, UsersApi, FilesApi, NotificationsApi, FriendsApi, etc...)
|
||||||
|
# Here we enter a context of the API Client and instantiate the Authentication API which is required for logging in.
|
||||||
|
|
||||||
|
# Enter a context with an instance of the API client
|
||||||
|
with vrchatapi.ApiClient(configuration) as api_client:
|
||||||
|
# Set our User-Agent as per VRChat Usage Policy
|
||||||
|
api_client.user_agent = "GroupInstanceLogger/0.1alpha me@williamtpeebles.com"
|
||||||
|
|
||||||
|
# Instantiate instances of API classes
|
||||||
|
auth_api = authentication_api.AuthenticationApi(api_client)
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Step 3. Calling getCurrentUser on Authentication API logs you in if the user isn't already logged in.
|
||||||
|
current_user = auth_api.get_current_user()
|
||||||
|
except UnauthorizedException as e:
|
||||||
|
if e.status == 200:
|
||||||
|
if "Email 2 Factor Authentication" in e.reason:
|
||||||
|
# Step 3.5. Calling email verify2fa if the account has 2FA disabled
|
||||||
|
auth_api.verify2_fa_email_code(two_factor_email_code=TwoFactorEmailCode(input("Email 2FA Code: ")))
|
||||||
|
elif "2 Factor Authentication" in e.reason:
|
||||||
|
# Step 3.5. Calling verify2fa if the account has 2FA enabled
|
||||||
|
auth_api.verify2_fa(two_factor_auth_code=TwoFactorAuthCode(getTOTP()))
|
||||||
|
current_user = auth_api.get_current_user()
|
||||||
|
print(current_user)
|
||||||
|
else:
|
||||||
|
print("Exception when calling API: %s\n", e)
|
||||||
|
except vrchatapi.ApiException as e:
|
||||||
|
print("Exception when calling API: %s\n", e)
|
||||||
|
|
||||||
|
print("Logged in as:", current_user.display_name)
|
Reference in New Issue
Block a user