public String makeClickUrl() throws WeiException {
        OAuthClient client = new OAuthClient(new URLConnectionClient());
        try {
            List<Map.Entry<?, ?>> parameters = Lists.newArrayList();
            String callback = accessor.consumer.callbackURL;
            if (null == callback) {
                callback = "null";
            }
            parameters.add(new OAuth.Parameter("oauth_callback", callback));
            client.getRequestToken(accessor, null, parameters);
        } catch (Exception e) {
            throw new WeiException(e);
        }

        Collection<Parameter> parameters = Lists.newArrayList();
        parameters.add(new Parameter("oauth_token", accessor.requestToken));

        try {
            OAuthMessage request = accessor.newRequestMessage(GET.toString(),
                    accessor.consumer.serviceProvider.userAuthorizationURL,
                    parameters);
            Object accepted = accessor.consumer
                    .getProperty(OAuthConsumer.ACCEPT_ENCODING);
            if (accepted != null) {
                request.getHeaders().add(
                        new OAuth.Parameter(HttpMessage.ACCEPT_ENCODING,
                                accepted.toString()));
            }
            Object ps = accessor.consumer
                    .getProperty(OAuthClient.PARAMETER_STYLE);
            ParameterStyle style = (ps == null) ? ParameterStyle.BODY : Enum
                    .valueOf(ParameterStyle.class, ps.toString());
            HttpMessage httpRequest = HttpMessage.newRequest(request, style);
            return httpRequest.url.toString();
        } catch (Exception e) {
            throw new WeiException(e);
        }
    }