Не удалось получить фотографию контакта в Gmail - PullRequest
0 голосов
/ 20 декабря 2011

Я создаю интегрированное приложение asp.net от Google. я хочу получить всю информацию

друга вошедшего в систему пользователя в 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

Я все равно не могу получить контактную фотографию.

Любая помощь приветствуется.

Спасибо

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

У меня нормально работает следующий код:

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 голосов
/ 17 декабря 2012

Мне удалось успешно получить фотографии с помощью библиотеки GData.Фотографии возвращаются в виде потока.

Следующий код извлекает поток

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

            resultsStream = service.Query(new Uri(Uri));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...