2010-12-09 6 views
2

Est-ce que quelqu'un sait s'il existe un appel de service Google Reader qu'un utilisateur peut effectuer pour obtenir le nom/l'uri de tous les flux qui relèvent d'une certaine étiquette/catégorie? Merci!API Google Reader - Obtention de flux

+0

Voulez-vous qu'il les renvoie en fonction d'un login? ou génériquement pour la découverte des aliments? – smilbandit

Répondre

2

Vous pouvez utiliser une variante du code ci-dessous pour accéder au système Google Reader. Vous devez envoyer l'en-tête ("Autorisation", "auth =" + myauthvar) avec chaque requête. Afin de modifier les éléments, vous aurez besoin du jeton que je présente également ci-dessous. Une fois que vous avez l'identifiant, vous pouvez poster (avec cet en-tête intact) à http://www.google.com/reader/api/0/subscription/list?output=xml afin de retourner la liste complète des abonnements.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Net; 
using System.IO; 

namespace ConsoleApplication2 
{ 
    class Program 
    { 

     static void Main(string[] args) 
     { 
      getAuth(); 

      Console.ReadLine(); 
     } 

     public static void getAuth() 
     { 

      //put in the username and password 
      string postData = "[email protected]&Passwd=YOURPASSWORD&service=reader&source=some-uniqueapp-v1"; 

      WebRequest authReq = WebRequest.Create("https://www.google.com/accounts/ClientLogin"); 
      authReq.ContentType = "application/x-www-form-urlencoded"; 
      authReq.Method = "POST"; 

      byte[] bytes = Encoding.ASCII.GetBytes(postData); 
      authReq.ContentLength = bytes.Length; 
      Stream os = authReq.GetRequestStream(); 
      os.Write(bytes, 0, bytes.Length); 

      WebResponse resp = authReq.GetResponse(); 

      StreamReader sr = new StreamReader(resp.GetResponseStream()); 

      string responseContent = sr.ReadToEnd().Trim(); 

      string[] responseSpilt = responseContent.Split('='); 

      string authticket = responseSpilt[3]; 

      Console.WriteLine("Auth = " + authticket); 

      sr.Close(); 

      getToken(authticket); 

     } 

     public static void getToken(string auth) 
     { 

      WebRequest tokenReq = WebRequest.Create("https://www.google.com/reader/api/0/token"); 
      tokenReq.ContentType = "application/x-www-form-urlendcoded"; 
      tokenReq.Method = "GET"; 

      tokenReq.Headers.Add("Authorization", "GoogleLogin auth=" + auth); 

      WebResponse response = tokenReq.GetResponse(); 
      if (response == null) return; 

      StreamReader sr = new StreamReader(response.GetResponseStream()); 
      string respContent = sr.ReadToEnd().Trim(); 

      string[] respSplit = respContent.Split('/'); 

      string token = respSplit[2]; 

      Console.WriteLine(" "); 

      Console.WriteLine("Token = " + token); 

      sr.Close(); 

     } 
    } 
} 
Questions connexes