Introduction
This blog I am going to
describe how to retrieve gmail contact with Name and Mail id in asp net. Here I
will describe how to communicate with Gmail using Google API.
Description
As it is a third party
software for this we required some third party dll to be referenced to our
application which will communicate with Gmail server.
For this we have to download
the Google API Set up from below link
http://code.google.com/p/google-gdata/
Or you can direct download
from this link
https://google-gdata.googlecode.com/files/Google_Data_API_Setup_2.1.0.0.msi
Install this setup you will
get these dll files in your Pc
- Google.GData.Apps.dll
- Google.GData.Client.dll
- Google.GData.Contacts.dll
- Google.GData.Extensions.dll
Collect these dll's.
Design
Now design your design the screen as below screen
Or Copy the source code
below
<%@
Page Language="C#"
AutoEventWireup="true"
CodeFile="Default.aspx.cs"
Inherits="_Default"
%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html
xmlns="http://www.w3.org/1999/xhtml">
<head
runat="server">
<title></title>
</head>
<body>
<form
id="form1"
runat="server">
<div>
<table
align="center"
width="100%">
<tr>
<td>
<table
align="center">
<tr></tr>
<tr>
<td>
<asp:Label
ID="Label1"
runat="server"
Text="User name"></asp:Label>
</td>
<td>
<asp:TextBox
ID="txtName"
runat="server"
Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label
ID="Label2"
runat="server"
Text="Password"></asp:Label>
</td>
<td>
<asp:TextBox
ID="txtPwd"
runat="server"
TextMode="Password"
Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td
colspan="2"
align="center">
<asp:Button
ID="btnLogin"
runat="server"
Text="Get Contact"
OnClick="btnLogin_Click"
/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td
align="center">
<asp:GridView
ID="gvContacts"
runat="server"
EmptyDataText="No
contacts" AllowPaging="true"
Width="50%"
PageSize="15"
AutoGenerateColumns="false"
OnPageIndexChanging="gvContacts_PageIndexChanging">
<Columns>
<asp:TemplateField
HeaderText="Contact
Name">
<ItemTemplate>
<asp:Label
ID="lblName"
runat="server"
Text='<%#Eval("Name")
%>'></asp:Label>
</ItemTemplate>
<ItemStyle
Width="200px"
/>
</asp:TemplateField>
<asp:TemplateField
HeaderText="Contact
Email">
<ItemTemplate>
<asp:Label
ID="lblEmail"
runat="server"
Text='<%#Eval("EmailID")
%>'></asp:Label>
</ItemTemplate>
<ItemStyle
Width="100px"
/>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
Next add reference of Google gdata
dll to your website.
-
Google.GData.Apps.dll
-
Google.GData.Client.dll
-
Google.GData.Contacts.dll
-
Google.GData.Extensions.dll
And write the below code .cs
file
using
System;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Data;
using
Google.GData.Contacts;
using
Google.GData.Client;
using
Google.GData.Extensions;
using
Google.Contacts;
public
partial class
_Default : System.Web.UI.Page
{
public DataSet
GetGmailContacts(string AppName,
string Uname, string
UPassword)
{
DataSet ds =
new DataSet();
DataTable dt =
new DataTable();
dt.Columns.Add(new
DataColumn("EmailID",
typeof(string)));
dt.Columns.Add(new
DataColumn("Name",
typeof(string)));
RequestSettings rs =
new RequestSettings(AppName,
Uname, UPassword);
rs.AutoPaging = true;
ContactsRequest cr =
new ContactsRequest(rs);
Feed<Contact>
f = cr.GetContacts();
foreach (Contact
t in f.Entries)
{
foreach (EMail
email in t.Emails)
{
DataRow dr1 = dt.NewRow();
dr1["EmailID"] =
email.Address.ToString();
dr1["Name"] =
t.Title.ToString();
dt.Rows.Add(dr1);
}
}
ds.Tables.Add(dt);
return ds;
}
protected void
Page_Load(object sender,
EventArgs e)
{
}
protected void btnLogin_Click(object
sender, EventArgs e)
{
DataSet ds = GetGmailContacts("Gmail
Contact Operations!", txtName.Text, txtPwd.Text);
ViewState["Contact"] = ds;
gvContacts.DataSource = ds;
gvContacts.DataBind();
}
protected void
gvContacts_PageIndexChanging(object sender,
GridViewPageEventArgs e)
{
DataSet ds = ViewState["Contact"]
as DataSet;
gvContacts.PageIndex = e.NewPageIndex;
gvContacts.DataSource = ds;
gvContacts.DataBind();
}
}
Now build your Application. And enter Gmail id and password in the corresponding
textbox
Click on Get Contact button it will show all your gmail Contact Name with Email.
Any modification or problem
Plz comment.