Source code in the controller C# with Example



Source code in the controller C# with Example

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) 
{ 
 

// You will get all contacts here 
return View("Index",contacts); 
} 
else 
{ 
return RedirectToAction("Index","Home"); 
} 
} 
else 
{ 
return RedirectToAction("Index", "Home"); 
} 
} 
public List 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(responseFromServer); 
/*End*/ 
return GetContacts(serStatus); 
} 
public List 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 
}; 
 

RequestSettings settings = new RequestSettings("App Name", oAuthparameters); 
ContactsRequest cr = new ContactsRequest(settings); 
ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); 
query.NumberToRetrieve = 5000; 
Feed ContactList = cr.GetContacts(); 
List olist = new List(); 
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; 
} 
} 
} 
 

0 Comment's

Comment Form

Submit Comment