Skip to content

Commit 96b24f4

Browse files
authored
Merge pull request #3 from vrchatapi/feat/improve-examples
Improve examples
2 parents 19f3d06 + 150bc72 commit 96b24f4

File tree

5 files changed

+135
-13
lines changed

5 files changed

+135
-13
lines changed

README.md

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,42 @@ dependencies {
4949
Below is an example on how to login to the API and fetch your own user information.
5050

5151
```java
52-
// Step 1. VRChat consists of several API's
52+
// Step 1. VRChat consists of several API's
5353
// e.g. (WorldsApi, UsersApi, FilesApi, NotificationsApi, FriendsApi, etc...)
5454
// Here we instantiate the Authentication API which is required for logging in.
5555
ApiClient defaultClient = Configuration.getDefaultApiClient();
5656
AuthenticationApi authApi = new AuthenticationApi(defaultClient);
5757

5858
// Step 2. We begin with creating a Configuration
59-
// This contains the username and password for authentication.
59+
// This contains the username and password for authentication, as well as a user agent.
6060
HttpBasicAuth authHeader = (HttpBasicAuth) defaultClient.getAuthentication("authHeader");
6161
authHeader.setUsername("username");
6262
authHeader.setPassword("password");
63+
defaultClient.setUserAgent("ExampleProgram/0.0.1 my@email.com");
64+
6365

6466
// Step 3. Call getCurrentUser on Authentication API.
65-
// This logs you in if the user isn't already logged in.
66-
CurrentUser result = authApi.getCurrentUser();
67-
System.out.println(result.getDisplayName());
67+
BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );
68+
try {
69+
authApi.getCurrentUser();
70+
}
71+
catch (IllegalArgumentException e){
72+
// Step 4. Verify using 2fa.
73+
if (e.toString().contains("emailOtp")){
74+
System.out.println("2FA Email code:");
75+
TwoFactorEmailCode code = new TwoFactorEmailCode();
76+
code.setCode(reader.readLine());
77+
authApi.verify2FAEmailCode(code);
78+
} else {
79+
System.out.println("2FA Authenticator code:");
80+
TwoFactorAuthCode code = new TwoFactorAuthCode();
81+
code.setCode(reader.readLine());
82+
authApi.verify2FA(code);
83+
}
84+
}
85+
86+
CurrentUser user = authApi.getCurrentUser();
87+
System.out.println("Logged in as: " + user.getDisplayName());
6888
```
6989

7090
See [examples](https://github.com/vrchatapi/vrchatapi-java/blob/master/examples) for more example usage on getting started.

examples/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@
2323
<dependency>
2424
<groupId>com.github.vrchatapi</groupId>
2525
<artifactId>vrchatapi-java</artifactId>
26-
<version>1.0.1-globalcookie3</version>
26+
<version>LATEST</version>
27+
</dependency>
28+
<dependency> <!-- needed for cookie retrieval -->
29+
<groupId>com.squareup.okhttp3</groupId>
30+
<artifactId>okhttp</artifactId>
31+
<version>4.10.0</version>
2732
</dependency>
2833
</dependencies>
2934
</project>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package io.github.vrchatapi.demo;
2+
3+
import io.github.vrchatapi.ApiClient;
4+
import io.github.vrchatapi.ApiException;
5+
import io.github.vrchatapi.Configuration;
6+
import io.github.vrchatapi.api.AuthenticationApi;
7+
import io.github.vrchatapi.auth.HttpBasicAuth;
8+
import io.github.vrchatapi.model.CurrentUser;
9+
10+
public class CookiesLoad {
11+
12+
public static void main(String[] args) throws ApiException {
13+
ApiClient defaultClient = Configuration.getDefaultApiClient();
14+
AuthenticationApi authApi = new AuthenticationApi(defaultClient);
15+
HttpBasicAuth authHeader = (HttpBasicAuth) defaultClient.getAuthentication("authHeader");
16+
authHeader.setUsername("username");
17+
authHeader.setPassword("password");
18+
defaultClient.setUserAgent("ExampleProgram/0.0.1 my@email.com");
19+
defaultClient.addDefaultHeader("Cookie", "auth=[AUTH_COOKIE_HERE]; twoFactorAuth=[TWO_FACTOR_AUTH_COOKIE_HERE]");
20+
21+
CurrentUser user = authApi.getCurrentUser();
22+
System.out.println("Logged in as: " + user.getDisplayName());
23+
}
24+
25+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package io.github.vrchatapi.demo;
2+
3+
import io.github.vrchatapi.ApiClient;
4+
import io.github.vrchatapi.ApiException;
5+
import io.github.vrchatapi.Configuration;
6+
import io.github.vrchatapi.api.AuthenticationApi;
7+
import io.github.vrchatapi.auth.HttpBasicAuth;
8+
import io.github.vrchatapi.model.CurrentUser;
9+
import io.github.vrchatapi.model.TwoFactorAuthCode;
10+
import io.github.vrchatapi.model.TwoFactorEmailCode;
11+
import java.io.BufferedReader;
12+
import java.io.IOException;
13+
import java.io.InputStreamReader;
14+
import java.util.List;
15+
import okhttp3.Cookie;
16+
17+
public class CookiesStore {
18+
19+
public static void main(String[] args) throws ApiException, IOException {
20+
ApiClient defaultClient = Configuration.getDefaultApiClient();
21+
AuthenticationApi authApi = new AuthenticationApi(defaultClient);
22+
HttpBasicAuth authHeader = (HttpBasicAuth) defaultClient.getAuthentication("authHeader");
23+
authHeader.setUsername("username");
24+
authHeader.setPassword("password");
25+
defaultClient.setUserAgent("ExampleProgram/0.0.1 my@email.com");
26+
27+
BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );
28+
try {
29+
authApi.getCurrentUser();
30+
}
31+
catch (IllegalArgumentException e){
32+
if (e.toString().contains("emailOtp")){
33+
System.out.println("2FA Email code:");
34+
TwoFactorEmailCode code = new TwoFactorEmailCode();
35+
code.setCode(reader.readLine());
36+
authApi.verify2FAEmailCode(code);
37+
} else {
38+
System.out.println("2FA Authenticator code:");
39+
TwoFactorAuthCode code = new TwoFactorAuthCode();
40+
code.setCode(reader.readLine());
41+
authApi.verify2FA(code);
42+
}
43+
}
44+
CurrentUser user = authApi.getCurrentUser();
45+
System.out.println("Logged in as: " + user.getDisplayName());
46+
47+
List<Cookie> cookies = defaultClient.getHttpClient().cookieJar().loadForRequest(new okhttp3.HttpUrl.Builder().scheme("http").host("api.vrchat.cloud").build());
48+
System.out.println("auth: " + cookies.get(0).value());
49+
System.out.println("twoFactorAuth: " + cookies.get(1).value());
50+
}
51+
52+
}

examples/src/main/java/io/github/vrchatapi/demo/Demo.java

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,48 @@
44
import io.github.vrchatapi.auth.*;
55
import io.github.vrchatapi.api.*;
66
import io.github.vrchatapi.model.*;
7+
import java.io.BufferedReader;
8+
import java.io.IOException;
9+
import java.io.InputStreamReader;
710

811
public class Demo {
912

10-
public static void main(String[] args) throws ApiException {
13+
public static void main(String[] args) throws ApiException, IOException {
1114
// Step 1. VRChat consists of several API's
1215
// e.g. (WorldsApi, UsersApi, FilesApi, NotificationsApi, FriendsApi, etc...)
1316
// Here we instantiate the Authentication API which is required for logging in.
1417
ApiClient defaultClient = Configuration.getDefaultApiClient();
1518
AuthenticationApi authApi = new AuthenticationApi(defaultClient);
1619

1720
// Step 2. We begin with creating a Configuration
18-
// This contains the username and password for authentication.
21+
// This contains the username and password for authentication, as well as a user agent.
1922
HttpBasicAuth authHeader = (HttpBasicAuth) defaultClient.getAuthentication("authHeader");
2023
authHeader.setUsername("username");
2124
authHeader.setPassword("password");
25+
defaultClient.setUserAgent("ExampleProgram/0.0.1 my@email.com");
26+
2227

2328
// Step 3. Call getCurrentUser on Authentication API.
24-
// This logs you in if the user isn't already logged in.
25-
CurrentUser result = authApi.getCurrentUser();
26-
System.out.println(result.getDisplayName());
27-
28-
System.exit(0);
29+
BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );
30+
try {
31+
authApi.getCurrentUser();
32+
}
33+
catch (IllegalArgumentException e){
34+
// Step 4. Verify using 2fa.
35+
if (e.toString().contains("emailOtp")){
36+
System.out.println("2FA Email code:");
37+
TwoFactorEmailCode code = new TwoFactorEmailCode();
38+
code.setCode(reader.readLine());
39+
authApi.verify2FAEmailCode(code);
40+
} else {
41+
System.out.println("2FA Authenticator code:");
42+
TwoFactorAuthCode code = new TwoFactorAuthCode();
43+
code.setCode(reader.readLine());
44+
authApi.verify2FA(code);
45+
}
46+
}
47+
CurrentUser user = authApi.getCurrentUser();
48+
System.out.println("Logged in as: " + user.getDisplayName());
2949
}
3050

3151
}

0 commit comments

Comments
 (0)