docs: @Sensitive
      public Map<String, Object> evaluateAccessTokenResponse(@Sensitive String responseBody) {
          Map<String, Object> response = new HashMap<String, Object>();
          String endpoint = TwitterConstants.TWITTER_ENDPOINT_ACCESS_TOKEN;
  
          Map<String, String> responseValues = populateResponseValues(responseBody);
  
          Map<String, Object> result = checkForEmptyResponse(endpoint, responseBody, responseValues);
          if (result != null) {
              return result;
          }
  
          // Ensure response contains oauth_token and oauth_token_secret values
          result = checkForRequiredParameters(endpoint, responseValues, TwitterConstants.RESPONSE_OAUTH_TOKEN, TwitterConstants.RESPONSE_OAUTH_TOKEN_SECRET);
          if (result != null) {
              return result;
          }
  
          String accessToken = "";
          String userId = "";
          String screenName = "";
  
          for (Entry<String, String> entry : responseValues.entrySet()) {
              String key = entry.getKey();
              String value = entry.getValue();
  
              if (key.equals(TwitterConstants.RESPONSE_OAUTH_TOKEN)) {
                  accessToken = value;
                  if (accessToken.isEmpty()) {
                      return createErrorResponse("TWITTER_RESPONSE_PARAMETER_EMPTY", new Object[] { TwitterConstants.RESPONSE_OAUTH_TOKEN, endpoint });
                  }
                  if (tc.isDebugEnabled()) {
                      Tr.debug(tc, TwitterConstants.RESPONSE_OAUTH_TOKEN + "=" + accessToken);
                  }
              } else if (key.equals(TwitterConstants.RESPONSE_OAUTH_TOKEN_SECRET)) {
                  tokenSecret = value;
                  if (tokenSecret.isEmpty()) {
                      return createErrorResponse("TWITTER_RESPONSE_PARAMETER_EMPTY", new Object[] { TwitterConstants.RESPONSE_OAUTH_TOKEN_SECRET, endpoint });
                  }
                  if (tc.isDebugEnabled()) {
                      // Do not trace access token secrets
                      Tr.debug(tc, TwitterConstants.RESPONSE_OAUTH_TOKEN_SECRET + "=****");
                  }
              } else if (key.equals(TwitterConstants.RESPONSE_USER_ID)) {
                  userId = value;
                  if (tc.isDebugEnabled()) {
                      Tr.debug(tc, TwitterConstants.RESPONSE_USER_ID + "=" + userId);
                  }
              } else if (key.equals(TwitterConstants.RESPONSE_SCREEN_NAME)) {
                  screenName = value;
                  if (tc.isDebugEnabled()) {
                      Tr.debug(tc, TwitterConstants.RESPONSE_SCREEN_NAME + "=" + screenName);
                  }
              } else {
                  if (tc.isDebugEnabled()) {
                      Tr.debug(tc, "Found an unexpected parameter in the response: " + key + "=" + value);
                  }
              }
          }
  
          response.put(TwitterConstants.RESULT_RESPONSE_STATUS, TwitterConstants.RESULT_SUCCESS);
          response.put(TwitterConstants.RESULT_ACCESS_TOKEN, accessToken);
          response.put(TwitterConstants.RESULT_ACCESS_TOKEN_SECRET, tokenSecret);
          response.put(TwitterConstants.RESULT_USER_ID, userId);
          response.put(TwitterConstants.RESULT_SCREEN_NAME, screenName);
  
          return response;
      }