patreon-java icon indicating copy to clipboard operation
patreon-java copied to clipboard

No documentation on how to refresh a creator access token

Open Vaerys-Dawn opened this issue 6 years ago • 4 comments

To refresh your creator's access token you need to be connected via OAUth there was no example explaining how to do so. I recommend adding an example to the readme.md to explain how to do so.

This is the code i had to use in order to refresh the token

//Id, token, and secret loaded from patreon.txt file.
public static void refreshPatreonToken(String clientID, String clientSecret, String refreshToken) {
    try {
        PatreonOAuthpatreonOAuth = new PatreonOAuth(clientID, clientSecret, "");
        PatreonOAuth.TokensResponse refresh = patreonOAuth.refreshTokens(refreshToken);
        StringBuffer tokenData = new StringBuffer();
        tokenData.append(refresh.getAccessToken() + "\n");
        tokenData.append(clientID + "\n");
        tokenData.append(clientSecret + "\n");
        tokenData.append(refresh.getRefreshToken());
        FileHandler.writeToFile(Constants.FILE_PATREON_TOKEN, tokenData.toString(), true);
        patreonApi = new PatreonAPI(refresh.getAccessToken());
    } catch (HttpStatusException e) {
          if (e.getStatusCode() == 401) {
              System.out.println("Refresh Token Invalid.);
              return;
         }
         e.printStackTrace();
    } catch (IOException e) {
         e.printStackTrace();
    }
}```

Vaerys-Dawn avatar Mar 14 '18 11:03 Vaerys-Dawn

Hi! First of all, thanks for writing this code and letting us know about this gap in our documentation. We're in the middle of improvements to our client libs, and I'll be sure to forward this to the relevant parties so that they know about it.

jrsun avatar Mar 19 '18 19:03 jrsun

@Vaerys-Dawn - did this code actually work for you? When I wanted to refresh my tokens, I had to change the following line in com.patreon.PatreonOAuth from

private static final String GRANT_TYPE_TOKEN_REFRESH = "token_refresh"; to private static final String GRANT_TYPE_TOKEN_REFRESH = "refresh_token";

as per the official Patreon docs. I'm about to submit a pull request with the change, but your comment above has made me second-guess myself.

decmurphy avatar Aug 30 '18 12:08 decmurphy

You're right, this is a bug. Thanks for surfacing this @murphd37.

vlanard avatar Aug 30 '18 16:08 vlanard

Cool, pull request submitted @ https://github.com/Patreon/patreon-java/pull/22

decmurphy avatar Aug 30 '18 17:08 decmurphy