MVC 3 и Google Contacts API

#asp.net-mvc #asp.net-mvc-3 #google-apps

#asp.net-mvc #asp.net-mvc-3 #google-приложения

Вопрос:

Я пытаюсь вывести список личных контактов Google Mail в MVC 3, используя этот API:http://code.google.com/apis/contacts
http://code.google.com/apis/contacts/docs/3.0/developers_guide_dotnet.html#Retrieving

Мне нужна помощь с того, с чего начать при его внедрении. Я много раз перечитывал документацию, но для меня это просто не имеет смысла.

Я хочу вывести все контакты и отобразить их в индексном действии моего контроллера контактов.

Мы были бы весьма признательны за любую помощь в решении этого широкого вопроса.

Ответ №1:

Сначала получите некоторый пример кода, работающий на основе приведенного выше (РЕДАКТИРОВАНИЕ — фактически смотрите ниже) Затем создайте новую ViewModel с любыми полями в ней, которые вы хотите отобразить. Создайте строго типизированное представление для этой ViewModel в виде списка ContactsViewModel (как бы вы его ни называли), чтобы в верхней части вашего представления его: @model IEnumerable<ContactsViewModel>

Создайте маршрут, чтобы указать URL-адрес на метод вашего контроллера, затем в вашем методе просто выполните запрос из Google и заполните его с помощью цикла, LINQ (или automapper и т.д.) вашего ContactsViewModel и верните модель в представление.

Если у вас есть что-то более конкретное, дайте мне знать, и я углублюсь

По иронии судьбы, в их же коде есть несколько неправильно названных / отформатированных элементов : ) конечно, добавьте ссылки ниже (контакты, клиент, расширения) из C:Program Файлы Google SDK API данных Google папка Redist

использование системы; 
использование системы.Коллекции.Общий;
использование System.Linq;
использование System.Text; 
с помощью Google.GData.Контакты;
с помощью Google.GData.Клиент;
с помощью Google.GData.Extensions;
с помощью Google.Контакты;


пространство имен GoogleTests
{
 классная программа
 { 
 статическая пустота Main(строка[] аргументов)
 {

 Настройки запросов rs = новые настройки запросов ("MyApplication", "youraccount@gmail.com ", "yourpwd");
 / В результате автоматической подкачки выполняется автоматическая подкачка для извлечения всех контактов

 rs.АвтоЗапуск = true; 
 ContactsRequest cr = новый запрос ContactsRequest (rs);

 Feed<Контакт> f = cr.getContacts(); 
 foreach (запись контакта в f.Entries)
 { 
 если (запись.Имя != null)
 {
 Имя имя = entry.Name;
 если (!строка.IsNullOrEmpty(имя.Полное имя))
 Консоль.Строка записи ("tt"   имя.Полное имя);
 ещё
 Консоль.Строка записи ("t t (полное имя не найдено)");
 если (!строка.IsNullOrEmpty(имя.Имя исправлено))
 Консоль.Строка записи ("tt"   имя.Исправление имени);
 ещё
 Консоль.Строка записи ("t t (префикс имени не найден)");
 если (!строка.IsNullOrEmpty(имя.Заданное имя))
 {
 строка givenNameToDisplay = name.Заданное имя;
 если (!строка.IsNullOrEmpty(имя.Дано имя пользователя))
 Заданный параметр отображения  = " ("   имя.Дано имя пользователя   ")";
 Консоль.Строка записи ("tt"   заданный параметр отображения);
 }
 ещё
 Консоль.Строка записи ("tt (имя не найдено)");
 если (!строка.IsNullOrEmpty(имя.Дополнительное имя))
 {
 строка additionalNameToDisplay = name.Дополнительное имя;
 если (строка.IsNullOrEmpty(имя.Дополнительная именная фонетика))
 Дополнительный параметр отображения  = " ("   имя.Дополнительные параметры имен
   ")";
 Консоль.Строка записи ("tt"   additionalNameToDisplay);
 }
 ещё
 Консоль.Строка записи ("t t (дополнительное имя не найдено)");
 если (!строка.IsNullOrEmpty(имя.Фамилия))
 {
 строка familyNameToDisplay = name.Фамилия;
 если (!строка.IsNullOrEmpty(имя.Фамильная телефонная система))
 familyNameToDisplay  = " ("   имя.FamilyNamePhonetics   ")";
 Консоль.Строка записи ("tt"   familyNameToDisplay);
 }
 ещё
 Консоль.Строка записи ("t t (фамилия не найдена)");
 если (!строка.IsNullOrEmpty(name.NameSuffix))
 Консоль.Строка записи ("tt"   name.NameSuffix);
 ещё
 Консоль.Строка записи ("t t (суффикс имени не найден)");
 }
 ещё
 Консоль.Строка записи("t (имя не найдено)");

 foreach (электронная почта в entry.Email)
 {
 Консоль.Строка записи ("t"   email.Адрес);
 }
 }
 }
 }
}

Комментарии:

1. Проблема в том, чтобы заставить работать некоторый пример кода, я знаю, что делать, когда я получу некоторый пример кода. Я просто не знаю, как собрать все это воедино.

2. хорошо — я опубликую здесь пошаговую инструкцию по короткому запуску api

3. Отлично, у меня есть этот код во вспомогательном файле, и все выглядит нормально. Теперь, как мне перенести эти контакты в мою базу данных?

4. это совершенно другой вопрос. Лично я бы использовал либо что-то вроде Entity Framework и создавал новые объекты entities (т.Е. Contact) и сохранял их, либо просто создавал вашу таблицу и вызывал хранимую процедуру для их сохранения — но.. это отдельный вопрос, чем то, что опубликовано. Если мой код помог, просто, пожалуйста, отметьте мой ответ как «отвеченный» в отношении первоначально заданного вопроса.