2011-04-11 5 views

Répondre

10

Hope this helps:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    try{ 
     String auth = getGoogleAuthKey("<your gmail email address>","<your password>"); 
     String token = getGoogleToken(auth); 
     String result = postToGoogleReader(token, auth); 
     TextView tv = (TextView) findViewById(R.id.textView1); 
     tv.setText(result); 
    }catch(Exception e){ 
    } 

} 

protected String getGoogleAuthKey(String _USERNAME, String _PASSWORD) { 
    String responseString = ""; 
    URL url; 
    try { 
     //open the connection 
     url = new URL("https://www.google.com/accounts/ClientLogin"); 
     HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
     urlConnection.setRequestMethod("POST"); 
     urlConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 
     urlConnection.setUseCaches(false); 
     urlConnection.setDoOutput(true); 

     //create the body 
     StringBuilder sb = new StringBuilder(); 
     sb.append("accountType="); 
     sb.append("GOOGLE"); 
     sb.append("&Email="); 
     sb.append(_USERNAME); 
     sb.append("&Passwd="); 
     sb.append(_PASSWORD); 
     sb.append("&service="); 
     sb.append("reader"); 
     sb.append("&source=");  
     sb.append("&lt;your app name&gt;"); 

     //make a request and retrieve results 
     OutputStream outputStream = urlConnection.getOutputStream(); 
     outputStream.write(sb.toString().getBytes("UTF-8")); 
     outputStream.close(); 
     sb = null; 

     int responseCode = urlConnection.getResponseCode(); 
     InputStream inputStream; 
     if (responseCode == HttpURLConnection.HTTP_OK) { 
      inputStream = urlConnection.getInputStream(); 
      responseString = convertStreamToString(inputStream); 
      String _AUTHKEY = responseString.substring(responseString.indexOf("Auth="), responseString.length()); 
      responseString = _AUTHKEY.replace("Auth=",""); 
      inputStream.close(); 
      urlConnection.disconnect(); 
     }else { 
      urlConnection.disconnect(); 
      return "error"; 
     } 
    } catch (Exception e) { 
     return e.getMessage(); 
    } 
    Log.d("GoogleReader", "Auth.a=" + responseString); 
    return responseString.trim(); 
} 

public String getGoogleToken(String authorization) { 
    final String googleReaderTokenUrl = "https://www.google.com/reader/api/0/token"; 
    String responseString = ""; 
    URL url; 

    try { 
     //open the connection 
     url = new URL(googleReaderTokenUrl); 
     HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
     Log.d("GoogleReader", "Auth.b=" + authorization); 
     urlConnection.addRequestProperty("Authorization", "GoogleLogin auth=" + authorization); 
     urlConnection.setRequestMethod("GET"); 
     urlConnection.setRequestProperty("Content-Type","application/x-www-form-urlendcoded"); 
     urlConnection.setUseCaches(false); 
     urlConnection.setDoOutput(true); 

     try { 
      InputStream inputStream = new BufferedInputStream(urlConnection.getInputStream()); 
      responseString = convertStreamToString(inputStream); 
     }catch(Exception e){ 
      int responseCode = urlConnection.getResponseCode(); 
       return Integer.toString(responseCode); 
      //return e.getMessage(); 
     }finally { 
      urlConnection.disconnect(); 
     } 
    } catch (Exception e) { 
     return e.getMessage(); 
    } 
    return responseString; 
} 

public String postToGoogleReader(String token, String authorization){ 
    final String googleAuthUrl = "http://www.google.com/reader/api/0/item/edit"; 
    String responseString = ""; 
    URL url; 
    try { 

     //create the body 
     StringBuilder sb = new StringBuilder(); 
     sb.append("accountType="); 
     sb.append("GOOGLE"); 
     sb.append("&snippet="); 
     sb.append(URLEncoder.encode("TheSnippet", "UTF-8")); 
     sb.append("&T="); 
     sb.append(URLEncoder.encode(token, "UTF-8")); 
     sb.append("&share="); 
     sb.append(false); 
     sb.append("&url="); 
     sb.append(URLEncoder.encode("http://developer.android.com/index.html", "UTF-8")); 
     sb.append("&title="); 
     sb.append(URLEncoder.encode("TheTitle", "UTF-8")); 
     sb.append("&srcTitle=");  
     sb.append(URLEncoder.encode("TheSource", "UTF-8")); 
     sb.append("&srcUrl=");  
     sb.append(URLEncoder.encode("www.your_web_site", "UTF-8")); 


     //open the connection 
     url = new URL(googleAuthUrl); 
     HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
     urlConnection.setRequestMethod("POST"); 
     Log.d("GoogleReader", "Auth.c=" + authorization); 
     urlConnection.addRequestProperty("Authorization", "GoogleLogin auth=" + authorization); 
     urlConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 
     urlConnection.setRequestProperty("Content-Length", Integer.toString(sb.toString().getBytes("UTF-8").length)); 
     urlConnection.setUseCaches(false); 
     urlConnection.setDoOutput(true); 


     //make a request and retrieve results 
     OutputStream outputStream = urlConnection.getOutputStream(); 
     outputStream.write(sb.toString().getBytes("UTF-8")); 
     outputStream.close(); 
     sb = null; 

     int responseCode = urlConnection.getResponseCode(); 
     InputStream inputStream; 
     if (responseCode == HttpURLConnection.HTTP_OK) { 
      inputStream = urlConnection.getInputStream(); 
      responseString = convertStreamToString(inputStream); 
      inputStream.close(); 
      urlConnection.disconnect(); 
     }else { 
      inputStream = urlConnection.getInputStream(); 
      responseString = convertStreamToString(inputStream); 
      urlConnection.disconnect(); 
      return "error"; 
     } 
    } catch (Exception e) { 
     return e.getMessage(); 
    } 
    return responseString; 

} 

private String convertStreamToString(InputStream is) { 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    StringBuilder sb = new StringBuilder(); 
    String line = null; 
    try { 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      is.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    return sb.toString(); 
} 
+0

Hm ... Je ne suis pas un ami du Code loin de donner sans réel besoin. La question est mauvaise et ne correspond pas à la zone mentionnée dans la FAQ. J'apprécie votre aide mais je pense que kool4u devrait investir davantage dans sa question. – WarrenFaith

+4

J'ai eu beaucoup de mal à faire en sorte que cela fonctionne et je voulais aider certaines personnes quand elles rencontraient cette question. J'apprécie la pensée, je voulais juste contribuer un peu. – bradley4

Questions connexes