2014-05-14 3 views
1

Imgur API를 사용하여 이미지 업로드 모듈을 만들려고합니다 등록 후 클라이언트 ID와 클라이언트 비밀이 있습니다. 이 구현 및 테스트에 올 때, 그것은 실패하고 로그 캣업로드 후 이미지 링크를 가져 오지 못함

   {"data":{"error":"We're really sorry, but 
     anonymous uploading in your country has 
been disabled. Please <a href=\"\/register\">register 
     for an account<\/a> and try uploading again.","request":"\/3\/upload.json","method":"POST"} 
    ,"success":false,"status":400} 

아래의 로그 캣 응답에서 다음과 같은 응답을 제공하는 것은

public String uploadToImgur(File uploadFile) { 
     DefaultHttpClient defaulthttpclient; 
     HttpPost httppost; 
     MultipartEntity multipartentity; 
     String path = uploadFile.getAbsolutePath().toString(); 
     String s; 
     defaulthttpclient = new DefaultHttpClient(); 

     String targetURL = "https://api.imgur.com/3/upload.json"; 
     String apikey = "client_secret"; 
     httppost = new HttpPost(targetURL); 

     httppost.setHeader("User-Agent", USER_AGENT); 
     httppost.addHeader("Authorization", "Client-ID {client)_id}"); 
     multipartentity = new MultipartEntity(); 
     s = path.substring(1 + path.lastIndexOf(".")); 
     if (s.lastIndexOf("jpg") >= 0) 
     { 
      s = "jpeg"; 
     } 
     try 
     { 
      multipartentity.addPart("image", new FileBody(new File(path), (new StringBuilder("image/")).append(s).toString())); 
      multipartentity.addPart("key", new StringBody(apikey)); 
      httppost.setEntity(multipartentity); 
      String s1 = EntityUtils.toString(defaulthttpclient.execute(httppost).getEntity()); 
      Log.d("outpur" , s1); 
      if (s1.lastIndexOf("<original>") >= 0 && s1.indexOf("</original>") >= 0) 
      { 
       return (new StringBuilder("[img]")).append(s1.substring(10 + s1.lastIndexOf("<original>"), s1.indexOf("</original>"))).append("[/img]").toString(); 
      } 
     } 
     catch (Exception exception) 
     { 
      return "ERRor"; 
     } 
     return "Error"; 
    } 

당신이 말해 주시겠습니까 내 코드입니다 업로드 모듈을 향상시키는 더 좋은 방법은 무엇입니까?

답변

0

익명으로 업로드하지 않는 클라이언트 ID를 등록하고 보내는 것만으로는 충분하지 않습니다. 이 문서는 oAuth를 사용하고 그러한 요청에 대해 전달되어야하는 토큰을 얻으라고 알려줍니다.

인증 API는 각 클라이언트가 OAuth 2 인증을 사용해야 함을 나타냅니다. 즉, 사용자로 로그인하려면 응용 프로그램을 등록하고 access_code를 생성해야합니다. 이미지 정보 가져 오기, 사용자 설명 찾는 것과 같이 공개 읽기 전용 및 익명 리소스의 경우 요청에 client_id와 함께 인증 헤더를 보내면됩니다. 이는 이미지를 익명으로 업로드하려는 경우 (이미지가 계정에 연결되지 않은 경우) 또는 익명의 앨범을 만들려는 경우에도 작동합니다. 이렇게하면 어떤 애플리케이션이 API에 액세스하고 있는지 알 수 있습니다. 인증 : 사용자의 계정에 액세스하기위한 클라이언트 ID YOUR_CLIENT_ID , 워드 프로세서

+0

I 돈의 OAuth2를 섹션을 방문하십시오; t 이해 ... 그게 내가 API를 사용하기 위해 어떤 코드를 얻을 수있을 것입니다? –

+0

imgur가 표준 oAuth 프로토콜을 어떻게 따르는 지 설명하는이 문서 https://api.imgur.com/oauth2를 확인하십시오. 적어도 문서 및 메시지를받는 중에 익명으로 업로드하지 않으려면 액세스 토큰을 얻어야합니다. – Raghu

관련 문제