2011-12-20 139 views
0

我正在創建Google集成的asp.net應用程序。我想檢索在Gmail中登錄用戶的朋友的所有信息無法檢索gmail聯繫人照片

。我在gridview中獲得了聯繫人列表。但我是

無法獲取任何聯繫人的個人資料照片。我正在GridView中動態添加數據列。

這裏是我的照片檢索代碼:

RequestSettings rs = new RequestSettings(App_Name, Uname, Password_property); 

     rs.AutoPaging = true; 

     ContactsRequest cr = new ContactsRequest(rs); 

     Feed<Contact> f = cr.GetContacts(); 

     foreach (Contact t in f.Entries) 
     { 
      Stream photo = cr.Service.Query(t.PhotoUri); 

       if (photo != null) 
       { 
        dr1["Profile Pic"] = System.Drawing.Image.FromStream(photo); 
       } 
     } 

它崩潰並說遠程服務器返回錯誤。

然後,我嘗試另一個代碼:

Stream photo = cr.GetPhoto(t); 

if (photo != null) 
{ 
    dr1["Profile Pic"] = System.Drawing.Image.FromStream(photo); 
} 

它還崩潰,並給出了

Google.GData.Client.GDataNotModifiedException : Content not modified 

錯誤,我不能夠得到無論如何接觸的照片。

任何幫助表示讚賞。

感謝

+0

我仍然不能夠得到的圖像。任何人都可以提供一些代碼。我迫切需要它 – Isha 2011-12-21 06:01:02

回答

1

下面的代碼工作正常,我:

public static List<ContactDetail> GetAllContact(string username, string password) 
{ 
    List<ContactDetail> contactDetails = new List<ContactDetail>(); 
    ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); 
    RequestSettings rs = new RequestSettings("W7CallerID", username, password); 
    ContactsRequest cr = new ContactsRequest(rs); 

    Feed<Contact> feed = cr.GetContacts(); 
    foreach (Contact entry in feed.Entries) 
    { 
     ContactDetail contact = new ContactDetail 
     { 
      Name = entry.Name.FullName, 
      EmailAddress1 = entry.Emails.Count >= 1 ? entry.Emails[0].Address : "", 
      EmailAddress2 = entry.Emails.Count >= 2 ? entry.Emails[1].Address : "", 
      Phone = entry.Phonenumbers.Count >= 1 ? entry.Phonenumbers[0].Value : "", 
      Details = entry.Content, 
      Pic = System.Drawing.Image.FromStream(cr.Service.Query(entry.PhotoUri)) 
     }; 

     contactDetails.Add(contact); 
    } 

    return contactDetails; 
} 
0

我已經設法成功地檢索使用的GData庫的照片。照片作爲流返回。

下面的代碼檢索流

   requestFactory = new GOAuthRequestFactory("c1", ApplicationName, parameters); 
      service = new ContactsService(ApplicationName); 
      service.RequestFactory = requestFactory; 

      resultsStream = service.Query(new Uri(Uri));