private String getAccessToken(WeLinkSettings.WebHookUrl webHookUrl) throws IOException, InterruptedException {
        final var accessTokenUrl = webHookUrl.getAccessTokenUrl();
        final var clientId = webHookUrl.getClientId();
        final var clientSecret = webHookUrl.getClientSecret();
        final var response = post(
            URI.create(accessTokenUrl),
            String.format(Locale.US, "{\"client_id\":%s,\"client_secret\":%s}", clientId, clientSecret),
            Collections.emptyMap()
        );
        final var gson = new Gson();
        final var responseJson = gson.fromJson(response, JsonObject.class);
        return Optional.ofNullable(responseJson)
                       .map(r -> r.get("access_token"))
                       .map(JsonElement::getAsString)
                       .orElse("");
    }
Get access token from remote endpoint
oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/welink/WeLinkHookCallback.java