2010-12-09 6 views
2

Google Readerサービスコールがある場合、特定のラベル/カテゴリに該当するすべてのフィードの名前/ URIを取得するためにユーザーが作成できることはありますか?ありがとう!Google Reader API - フィードの取得

+0

ログインに基づいて返信しますか?一般的にはフィードの検出用ですか? – smilbandit

答えて

2

以下のバリエーションのコードを使用して、Googleリーダーシステムにアクセスすることができます。リクエストごとにヘッダー( "Authorization"、 "auth =" + myauthvar)を送信する必要があります。アイテムを編集するには、以下にデモするトークンが必要です。正式なサブスクリプション一覧を返すには、認証IDを取得したらhttp://www.google.com/reader/api/0/subscription/list?output=xmlに投稿してください(ヘッダーはそのまま)。

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(); 

     } 
    } 
}