0 оценок0% нашли этот документ полезным (0 голосов)
110 просмотров3 страницы
This document provides code to import Google contacts into an ASP.NET MVC application. It includes code to authenticate with Google APIs, retrieve an access token, and get contact data from a user's Google account. The code makes API requests to Google to authorize the app, then uses the access token to get a list of up to 5000 contacts for each user, extracting each contact's name and email address. It stores the email addresses in a list to return to the view. The view only needs an action link to call the import method.
This document provides code to import Google contacts into an ASP.NET MVC application. It includes code to authenticate with Google APIs, retrieve an access token, and get contact data from a user's Google account. The code makes API requests to Google to authorize the app, then uses the access token to get a list of up to 5000 contacts for each user, extracting each contact's name and email address. It stores the email addresses in a list to return to the view. The view only needs an action link to call the import method.
This document provides code to import Google contacts into an ASP.NET MVC application. It includes code to authenticate with Google APIs, retrieve an access token, and get contact data from a user's Google account. The code makes API requests to Google to authorize the app, then uses the access token to get a list of up to 5000 contacts for each user, extracting each contact's name and email address. It stores the email addresses in a list to return to the view. The view only needs an action link to call the import method.
To Import Google(Gmail) contacts in ASP.NET MVC application, first download "Google API setup" This will grant the following references: using Google.Contacts; using Google.GData.Client; using Google.GData.Contacts; using Google.GData.Extensions; Add these to the relevant application. Section 161.2: Source code in the controller using Google.Contacts; using Google.GData.Client; using Google.GData.Contacts; using Google.GData.Extensions; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Web; using System.Web.Mvc; namespace GoogleContactImport.Controllers { public class HomeController : Controller { public ActionResult Index() { return View(); } public ActionResult Import() { string clientId = ""; // here you need to add your google client id string redirectUrl = "http://localhost:1713/Home/AddGoogleContacts"; // here your redirect action method NOTE: you need to configure same url in google console Response.Redirect("https://accounts.google.com/o/oauth2/auth?redirect_uri=" + redirectUrl + "&&response_type=code&&client_id=" + clientId + "&&scope=https://www.google.com/m8/feeds/&approval_prompt=force&access_type=offline"); return View(); } public ActionResult AddGoogleContacts() { string code = Request.QueryString["code"]; if (!string.IsNullOrEmpty(code)) { var contacts = GetAccessToken().ToArray(); if (contacts.Length > 0) { GoalKicker.com – C# Notes for Professionals 762 // You will get all contacts here return View("Index",contacts); } else { return RedirectToAction("Index","Home"); } } else { return RedirectToAction("Index", "Home"); } } public List<GmailContacts> GetAccessToken() { string code = Request.QueryString["code"]; string google_client_id = ""; //your google client Id string google_client_sceret = ""; // your google secret key string google_redirect_url = "http://localhost:1713/MyContact/AddGoogleContacts"; HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://accounts.google.com/o/oauth2/token"); webRequest.Method = "POST"; string parameters = "code=" + code + "&client_id=" + google_client_id + "&client_secret=" + google_client_sceret + "&redirect_uri=" + google_redirect_url + "&grant_type=authorization_code"; byte[] byteArray = Encoding.UTF8.GetBytes(parameters); webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = byteArray.Length; Stream postStream = webRequest.GetRequestStream(); // Add the post data to the web request postStream.Write(byteArray, 0, byteArray.Length); postStream.Close(); WebResponse response = webRequest.GetResponse(); postStream = response.GetResponseStream(); StreamReader reader = new StreamReader(postStream); string responseFromServer = reader.ReadToEnd(); GooglePlusAccessToken serStatus = JsonConvert.DeserializeObject<GooglePlusAccessToken>(responseFromServer); /*End*/ return GetContacts(serStatus); } public List<GmailContacts> GetContacts(GooglePlusAccessToken serStatus) { string google_client_id = ""; //client id string google_client_sceret = ""; //secret key /*Get Google Contacts From Access Token and Refresh Token*/ // string refreshToken = serStatus.refresh_token; string accessToken = serStatus.access_token; string scopes = "https://www.google.com/m8/feeds/contacts/default/full/"; OAuth2Parameters oAuthparameters = new OAuth2Parameters() { ClientId = google_client_id, ClientSecret = google_client_sceret, RedirectUri = "http://localhost:1713/Home/AddGoogleContacts", Scope = scopes, AccessToken = accessToken, // RefreshToken = refreshToken }; GoalKicker.com – C# Notes for Professionals 763 RequestSettings settings = new RequestSettings("App Name", oAuthparameters); ContactsRequest cr = new ContactsRequest(settings); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.NumberToRetrieve = 5000; Feed<Contact> ContactList = cr.GetContacts(); List<GmailContacts> olist = new List<GmailContacts>(); foreach (Contact contact in ContactList.Entries) { foreach (EMail email in contact.Emails) { GmailContacts gc = new GmailContacts(); gc.EmailID = email.Address; var a = contact.Name.FullName; olist.Add(gc); } } return olist; } public class GmailContacts { public string EmailID { get { return _EmailID; } set { _EmailID = value; } } private string _EmailID; } public class GooglePlusAccessToken { public GooglePlusAccessToken() {} public string access_token { get { return _access_token; } set { _access_token = value; } } private string _access_token; public string token_type { get { return _token_type; } set { _token_type = value; } } private string _token_type; public string expires_in { get { return _expires_in; } set { _expires_in = value; } } private string _expires_in; } } } GoalKicker.com – C# Notes for Professionals 764 Section 161.3: Source code in the view The only action method you need to add is to add an action link present below <a href='@Url.Action("Import", "Home")'>Import Google Contacts</a>
Learn Python Programming for Beginners: Best Step-by-Step Guide for Coding with Python, Great for Kids and Adults. Includes Practical Exercises on Data Analysis, Machine Learning and More.
Microsoft 365 Guide to Success: 10 Books in 1 | Kick-start Your Career Learning the Key Information to Master Your Microsoft Office Files to Optimize Your Tasks & Surprise Your Colleagues | Access, Excel, OneDrive, Outlook, PowerPoint, Word, Teams, etc.
Microsoft Excel Guide for Success: Transform Your Work with Microsoft Excel, Unleash Formulas, Functions, and Charts to Optimize Tasks and Surpass Expectations [II EDITION]
Microsoft PowerPoint Guide for Success: Learn in a Guided Way to Create, Edit & Format Your Presentations Documents to Visual Explain Your Projects & Surprise Your Bosses And Colleagues | Big Four Consulting Firms Method
The Advanced Roblox Coding Book: An Unofficial Guide, Updated Edition: Learn How to Script Games, Code Objects and Settings, and Create Your Own World!
Microsoft OneNote Guide to Success: Learn In A Guided Way How To Take Digital Notes To Optimize Your Understanding, Tasks, And Projects, Surprising Your Colleagues And Clients