1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como autenticar Imgur API v3 java desktop OAuth 2.0?

É o seguinte pessoal, to tentando fazer essas duas classes uma para tirar o print que já está funcionado, e a outra para enviar para o site IMGUR.

Bom lá está dizendo que tem que fazer uma autenticação para receber um token. alguém tem experiencia com OAuth 2.0?

link da API https://api.imgur.com/

public void takeAPrint() throws AWTException, IOException {

        String uh = System.getProperty("user.home");
        String phora = new SimpleDateFormat("HH.mm.ss").format(System.currentTimeMillis());
        String pdata = new SimpleDateFormat("dd.MMMMM.yyyy").format(System.currentTimeMillis());
        String usuario = Menumix.uzu.getText();
        String path = (uh + "/desktop/" + pdata + "..." + phora + "..." + usuario + ".png");

        Toolkit toolkit = Toolkit.getDefaultToolkit();

        Dimension screenSize = toolkit.getScreenSize();
        Rectangle screenRect = new Rectangle(screenSize);

        Robot robot = new Robot();
        BufferedImage screenCapturedImage = robot.createScreenCapture(screenRect);

        ImageIO.write(screenCapturedImage, "gif", new File(path));


        Imgur(path);

    }


    public HttpResponse Imgur (String imageDir) {
    //create needed strings
    String address = "https://api.imgur.com/3/upload";
    String clientid = "a5ff54a5f37d906";
    //Create HTTPClient and post
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(address);

    //create base64 image
    BufferedImage image = null;
    File file = new File(imageDir);

    try {
        //read image
        image = ImageIO.read(file);
        ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
        ImageIO.write(image, "gif", byteArray);
        byte[] byteImage = byteArray.toByteArray();
        String dataImage = new Base64().encodeAsString(byteImage);

        //add header
        post.addHeader("Authorization", "Client-id" +clientid);
        //add image
        List<NameValuePair> nameValuePairs = new ArrayList<>(1);
        nameValuePairs.add(new BasicNameValuePair("image", dataImage));
        post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        //execute
        HttpResponse response = client.execute(post);

        //read response
        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        System.out.print(response);
        return response;
    }
    catch (IOException | IllegalStateException e){
        System.out.print(e);
        return (HttpResponse) e;
    }

}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java oauth api ou faça a sua própria pergunta.