Monday, December 10, 2007

OpenContacts 1.0 release (with Live/Hotmail support)

OpenContacts 1.0 with Live support has released.

https://sourceforge.net/project/showfiles.php?group_id=210092&package_id=252191&release_id=560658

Now supported:
  1. Import Google Mail contacts
  2. Import Yahoo Mail contacts
  3. Import Live contacts/Hotmail contacts
Thanks

80 comments:

frik0 said...

dude, this works fine with gmail and yahoo... but live didnt work at all..

did i need to registrate my web application right?

i've been reading about all this stuff about contact live but its a pain in the ass..

did this work for u just compiling? did u do something else?

greetz

jc fkjc(at)hotmail.com

gnilly boy said...

It works for me. I've just test xx@live.com account.

Try test application
OpenContactsNet.Test.exe xx@live.com pass

Thanks

Ashu said...

Even with yahoo accounts I suppose it would work with
anyusername@yahoo.com

It will not work with anything like username@yahoo.co.uk
or
username@yahoo.co.in etc

Correct me if I am not.

Any solutions for that?

Ahmed Mostafa said...

really it's a good Dll but there was some errors in grabbing Hotmail Contact List . so, i had made some changes in its code and now it imports Hotmail Contact List succesfully :) :)

how can i upload new code for you ?!!

gnilly boy said...

Ahmed Thanx

Could you post your code here?

Anita said...

Hey,

Can you please help me to grab address book of Myspace and Facebook?

With regards
Anita

Wyerarch said...

Great utility, but I too had the same msn hotmail / live problem, just fails - Ahmed - could you please post your solution to it?

Unknown said...

Hi people. Here's the fix i'm using to get the hotmail contacts list.

Open the LiveExtract.cs file. Find:

======================
XmlNode firstName = node.SelectSingleNode( "Profiles/Personal/FirstName" );
XmlNode lastName = node.SelectSingleNode( "Profiles/Personal/LastName" );
XmlNode firstMail = node.SelectSingleNode( "Emails/Email/Address" );

MailContact mailContact = new MailContact();
mailContact.Name = string.Format( "{0} {1}", firstName.InnerText, lastName.InnerText );
mailContact.Email = firstMail.InnerText;
list.Add( mailContact );
======================

and replace with:

======================
string firstName = node.SelectSingleNode( "Profiles/Personal/FirstName") != null ? node.SelectSingleNode("Profiles/Personal/FirstName").InnerText : null;
string lastName = node.SelectSingleNode("Profiles/Personal/LastName") != null ? node.SelectSingleNode("Profiles/Personal/LastName").InnerText : null;
string email = node.SelectSingleNode("Emails/Email/Address") != null ? node.SelectSingleNode("Emails/Email/Address").InnerText : null;

if (!string.IsNullOrEmpty(email))
{
MailContact mailContact = new MailContact();
mailContact.Name = string.Format("{0} {1}", firstName, lastName);
mailContact.Email = email;
list.Add(mailContact);
}
======================

The problem i found was that the firstName and lastName nodes did not exist and for some people the email node did not exist.

Hope this helps.

gnilly boy said...

Thanks lee,
I'm going to publish library with hotmail fix shortly.

Unknown said...

Excellent job! Kudos to you for realeasing open source software, I have great respect for people who do. Do you have any plans to import aol/aim contacts somehow?

Thanks!

skasim said...

Hello,
Heed help

I am using your OpenContacts 1.0 with gmail support. I have one issue if you can help me.

I use your script to login to Gmail once I login I redirect to http://mail.google.com/mail which is not allowing me to login I see a cookie and it says
LSID=EXPIRED
LSID=EXPIRED

Is that is the reason my login is not acceptable to gmail and how I can fix it ?

Unknown said...

Excellent work. Using it...loving it! However just one thing the utilties dll referenced within the project is not strongly named and is giving me errors when building on vista machines. Any chance of getting your references signed? Or getting hold of the source? Ta.

Unknown said...

Very cool. I trying to use it in asp .net. But extract funtion is always returning "false"

Dim list As MailContactList = Nothing
Dim res As Boolean = False
If chkGmail.Checked = True Then
Dim extractor As New GmailExtract()
res = extractor.Extract(New NetworkCredential(txtUser.Text, txtPass.Text, "gmail.com"), list)
End If

I have checked username/pass couple of times. No issue there. Anyone experiecned this issue?

Harold Campbell said...

Lee:

The changes worked like a charm.

-Thanks

Ramky said...

Hii
You can have a same functionality of apps here in asp.net2.0 with Ajax...
http://ramcrishna.blogspot.com/2008/09/reading-contactsaddress-book-from-yahoo.html

Vijay Vishwakarma said...

HI,

When I m trying to import contacts from hotmail address book, its giving me error 404.

Can you help me out with this?

Harold Campbell said...

@vijay vishwakarma,
I never had any problems like this. You need to either publish some of your code, or be more specific. Also, see some of the other comments. The hotmail component will need a little tweaking.

Vijay Vishwakarma said...

Hi,

Thanks for the reply.

here is my code.

protected void Button1_Click(object sender, EventArgs e)
{
MailContactList ml = new MailContactList();
LiveExtract l = new LiveExtract();
bool res = false;
try
{
res = l.Extract(new NetworkCredential(TextBox1.Text.Trim(), TextBox2.Text.Trim(), "hotmail.com"), out ml);

if (res.Equals(true))
{
Label1.Text= "Ok";
}
else
{
Label1.Text="NOT Ok";
}
}
catch(Exception ex)
{
Response.Write(ex.Message.ToString());
}

}


Here is the class for hotmail importer.



public class LiveExtract : IMailContactExtract
{
#region IMailContactExtract Members

public bool Extract( NetworkCredential credential, out MailContactList list )
{
list = new MailContactList();

bool result = false;

try
{
TicketAcquirer ticketAcquirer = new TicketAcquirer();
string ticket = ticketAcquirer.GetTicket( credential );
if ( string.IsNullOrEmpty( ticket ) )
{
return false;
}

UriBuilder urib = new UriBuilder();
urib.Scheme = "HTTPS";
urib.Path = string.Format( "/{0}/LiveContacts", credential.UserName );
urib.Host = "cumulus.services.live.com";
//urib.Host = "service.live.com";
//urib.Host = "livecontacts.services.live.com/@C@";
urib.Port = 443;

// string contactsUri = "https://livecontacts.services.live.com/@C@" + credential.UserName + "/REST/LiveContacts/Contacts";

HttpWebRequest request = ( HttpWebRequest ) WebRequest.Create( urib.Uri );

string authHeader = string.Format( "WLID1.0 t=\"{0}\"", ticket );
request.Headers.Add( "Authorization", authHeader );
//request.Method = "GET";

//string contactsUri = "https://livecontacts.services.live.com/@C@" + Int64.Parse(CToken.LocationID, System.Globalization.NumberStyles.HexNumber) + "/REST/LiveContacts/Contacts";

WebResponse response = request.GetResponse();
if ( response.ContentLength != 0 )
{
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load( response.GetResponseStream() );
XmlNodeList contacts = xmlDocument.SelectNodes( "/LiveContacts/Contacts/Contact" );
foreach ( XmlNode node in contacts )
{
//XmlNode firstName = node.SelectSingleNode( "Profiles/Personal/FirstName" );
//XmlNode lastName = node.SelectSingleNode( "Profiles/Personal/LastName" );
//XmlNode firstMail = node.SelectSingleNode( "Emails/Email/Address" );

//MailContact mailContact = new MailContact();
//mailContact.Name = string.Format( "{0} {1}", firstName.InnerText, lastName.InnerText );
//mailContact.Email = firstMail.InnerText;
//list.Add( mailContact );

string firstName = node.SelectSingleNode("Profiles/Personal/FirstName") != null ? node.SelectSingleNode("Profiles/Personal/FirstName").InnerText : null;
string lastName = node.SelectSingleNode("Profiles/Personal/LastName") != null ? node.SelectSingleNode("Profiles/Personal/LastName").InnerText : null;
string email = node.SelectSingleNode("Emails/Email/Address") != null ? node.SelectSingleNode("Emails/Email/Address").InnerText : null;

if (!string.IsNullOrEmpty(email))
{
MailContact mailContact = new MailContact();
mailContact.Name = string.Format("{0} {1}", firstName, lastName);
mailContact.Email = email;
list.Add(mailContact);
}
}
}
result = true;
}
catch
{
}
return result;
}

#endregion
}



The problem is with this line:
WebResponse response = request.GetResponse();

I m always getting response from server as error 404.

Please help me out.

Regards

Harold Campbell said...

I'm not sure it's your code. I just pulled mine from my local SVN repository and it also no longer works.

Harold Campbell said...

@vijay vishwakarma,
I'm not sure it's your code. I just pulled mine from my local SVN repository and it also no longer works.

A better approach may be to use Microsoft's API to authenticate/get user contacts.

Vijay Vishwakarma said...

Hi,

Its your code only.

I have just modified to fix hotmail bug.

Something is wrong with cumulus.services.live.com.

I googled a lot and got post with same error which I m getting..

Regards

Harold Campbell said...

ahmmm....I'm not sure I follow what you are saying.

"...Its your code only..."

What's wrong with my code?

"...I have just modified to fix hotmail bug..."

So you have fixed your code? Then publish the fix.

"...Something is wrong with cumulus.services.live.com.
I googled a lot and got post with same error which I m getting..."

But even so, you are still getting an error?

Vijay Vishwakarma said...

I have downloaded the source code from http://sourceforge.net/.

I read the posts here for hotmail bug. Gmail and yahoo worked in one attempt but for hotmail as per the post I replaced a few lines.

I created the object of liveextract to extract email, passed values.Ticket was generated, but when reading the webresponse, I got exception ERROR 404.

The url for hotmail cumulus.services.live has some problem. I m just not getting that.

Alternatively I will try microsoft live api for this.

Regards

dude said...

hi vijay,

a month before hotmail was working fine. it imports contacts.

but now i am having the same issue with hotmail. i am getting the internal server (500) error.
there before i was getting ssl policyexpired error. i fiexed it.
( at web request)

i tried with microsoft live api. but there is no silent login (log in through programatically)

if you have code then please post it here.

my mail id: nandhucbm@hotmail.com

thanks.
regards,
Nanda

Unknown said...

crack, I am getting same problem, if you have a good ways of solving it please let me know.

Thanks

Unknown said...

HI Friends, The code is not working with Hotmail but its working fine with yahoo and gmail. I found some errors when trying to import hotmail contacts. Can anybody post the code for hotmail. Hi Ahmed, I read your blog, Could you please post your solution to my mail id
msunil.iitkgp@gmail.com

Ahmed Mostafa said...

hi Sunil ,
i sent you the Code Project which i made changes in it .
i hope it can help you

YoKeSe said...

Please Ahmed send me it too please

Ahmed Mostafa said...

hi Yokese
i dont have you email !!
and i would like to publish this code to be available for all users.
can i do this ????

YoKeSe said...

You can upload to megaupload into a zip also you can upload it to rapidshare.com

YoKeSe said...

Ahmed you can sendme email

http://services.nexodyne.com/email/icon/01peAG6p/zqPXEe0%3D/R01haWw%3D/0/image.png

click in the linf (image contains my email adress)

dinesh said...

Hi,
I am using hotmail extractor class,but i am getting the error "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel" can any one solve thi??

dinesh said...

Hi Ahmed,

Can you please send the code to my maillid:dineshd87@gmail.com.please.....

Anita said...

Hi Ahmed,

my email id is anita.s.1201@gmail.com

Can you send me the new code please?

thanks

dinesh said...

Hi Anita,

If you get any new code,please forward to me...

Thanks...

Prisma said...

Hi Ahmed,

im Javier, can you send me the code to elchalten@hotmail.com??

Thanks a lot!

YoKeSe said...

Ahmed please can you send me windows live contacts please to yokese@gmail.com ?

Thanks for your help :-)

pd : Sorry for my poor english

YoKeSe said...

Hi! Please I need your help , if any person receive windows live contacts from ahmed please send me it to my email yokese@gmail.com , I need for my job ( if I dont obtain it I dont have job... :-( )

Thanks for your help and sorry for my poor english

shaik said...

Hi Ahmed,

I read your comments like
"really it's a good Dll but there was some errors in grabbing Hotmail Contact List . so, i had made some changes in its code and now it imports Hotmail Contact List succesfully :) :)"

pls send the code to my id, dawood_hasnudden@rediffmail.com
Thanks in Advance

Ahmed Mostafa said...

hi all,
sorry for lateness. this link for the code , i uploaded it on rapidshare :

http://rapidshare.com/files/216292801/OpenContacts.NET.rar.html

i hope it can help you .

Johan Wikström said...

Ahmeds file dones not seem to fix:

The remote certificate is invalid according to the validation procedure.

Its Microsoft that need to update their certificate i think..

anyone know another way to get the hotmail contacts?

Unknown said...

Ahmed please can you send me windows live contacts please to mattpodro@hotmail.com ?

Thanks for your help!!

(the http://rapidshare.com/files/216292801/OpenContacts.NET.rar.html has expired :S)

Jitendra Patil said...

Hi ahmed can you send me hotmail code at jitendrapatil2006@gmail.com
please i really need it.

Juan@Me said...
This comment has been removed by the author.
jai soft said...

hi Ahmed ,
yahoo,gmail contact extractor are working fine , but live contact extractor give error- "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel." on this line-"WebResponse response = request.GetResponse();"

Unknown said...

Hi Ahmed.

Please send me updated code of importing hotmail contacts on isha.esha@gmail.com

Johan Wikström said...

as i wrote before Ahmends version does not work anymore.. we need a version that uses hotmails openid solution.

Rahul Singh said...

Hi Ahmed,

Can anyone help me with the Live Contacts.

I tried using the Live SDK by scraping the delgated authentication, but it does not work.

Can anyone please comment if this code works. and please send me the latest code at rahulsinghpune@gmail.com

ashu said...

hi gnilly boy..


Your code version for opencontacts 1.0 works fine for Google and yahoo.Its excellent!..Hotmail too was working ..but for the while i get stuck with exception when calling the GetResponse() method .."The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."..But the token gets generated using TicketAcquirer.getTicket() method..

Please advice me on this..

Farhan said...

Salam Ahmed
Ur given link for code is een expired.
Plz either give new link or mail me at farhanghani88@hotmail.com
Thanx in advance bro...

Lalit Tankala said...

Hi, I also need the lastest code for OpenContact.NET or a utility for Gmail, Yahoo and Hotmail import.

OpenContact is giving issues with Hotmail.

Can someone please send me the code to ltankala@gmail.com?

Niral said...

i have tried it but hotmail does not work for me, google and yahoo works fine.
do you guys think point to entry to live web serivce is wrong.
please help me out here

Kok Wei. Yip said...

I tried to modify the code to import the hotmail contact list, but it's fail.

Do you guys have any solution on it.

Kindly help me out.. Please.

My email is k.w.yip04@gmail.com

ram said...

I too get stuck with exception when calling the GetResponse() method .."The underlying connection was closed".

Could you please send me the latest code at ramsjone@hotmail.com

Satinder said...

hi Gnilly, The code is not working for me except yahoo even that only once a day. Can u please send me the updated code. Thanks in advance

showkath said...

hi

opencontactsnet
fine with gmail and yahoo... but live didnt work at all..
plz assist me ..what will be error

Abhishek said...

Hi i am abhishek

When I m trying to import contacts from hotmail address book, its giving me error 404.

Can you help me out with this?
My email id-microsoftabhi@gmail.com

Abhishek said...

Hi i am abhishek

When I m trying to import contacts from hotmail address book, its giving error:-

"The remote name could not be resolved: 'cumulus.services.live.com"

Can you help me out with this?
My email id-microsoftabhi@gmail.com

Abhishek said...

hi Ahmed ,
yahoo contact extractor are working fine , but live contact extractor give error- "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel." on this line-"WebResponse response = request.GetResponse();"

Please send me updated code of importing hotmail contacts on microsoftabhi@gmail.com

Unknown said...
This comment has been removed by the author.
Unknown said...

I have the same problem, and I need the solution!!! could anybody or Amesh send me the code? Please???

Thanks! And good forum.


matiasburni@gmail.com

Unknown said...

i trying import contacts from yahoo address book, have some problem yahoo contacts can not getting.

please send me the code on milanjansair@gmail.com.

Does anyone can help me out.

Anita said...

Hey

contact importer of gmail is not working..

can someone send me updated code?

regards

Samineni said...

Hi,

Can any one send me the code for reading address book from gmail,yahoo and hotmail.....

plz help...........

Unknown said...

Hi Admad,

Could you send the source code.
My email address is joeyliew2009@gmail.com.

Thank you.

Regards,
Joey Liew

Unknown said...

Hi Admad,

Could you send the source code.
My email address is joeyliew2009@gmail.com.

Thank you.

Regards,
Joey Liew

SohelElite said...

Hi Ahmed,

Could you send the source code for hotmail import.
My email address is sohel.shaikh.s@gmail.com

Thank you.

Regards,
Sohel

Nilashini said...

hi all,

i am trying to import contacts from yahoo using this opencontacts.

in this, i got output for email address is "sans-serif;*font-size:small;*font:x-small;}" and Name is "clean" insteat of getting email address

Please tell anyone how to fix this error

Nilashini said...

when i import contacts from hotmail , i got the error "The remote name could not be resolved: 'cumulus.services.live.com' "

please tell anyone how to clear this error

熙辰 said...

人有兩眼一舌,是為了觀察倍於說話的緣故。......................................................................

明文吳 said...

看看blog調整心情,又要來繼續工作,大家加油......................................................................

Anonymous said...

Pay somebody back in his own coin. .......... . . . ............. .......... ..........

Unknown said...

Does anybody fixed hotmail.com and live.com? and yahoo also error, It isn't return email. Please let me know if your solution is working.
Looking forward to your help.


Regards
Ernesto de' sandra

Unknown said...

I still get this error in hotmail class
Exception : "The remote name could not be resolved: 'cumulus.services.live.com'"

Please help.

Madhu said...

Dam Bull Shit Codes !!! nothing works

Ram said...

Now this code is not working at all.
Can somebody help me if there is any other way to import contact from yahoo, hotmail, AOL.

I am able to do import contact from gmail but not for other provider.


Ramveer Singh
ramveersingh@gmail.com

kinjal said...

i tried this code but not abel to get contact it will give me erro like this below :

The remote server returned an error: (401) Unauthorized.

Vijay Vishwakarma said...

Anyone got this fixed ?

tota said...

I need to import hotmail contacts. can help and send me the code.
ebtsam.138@hotmail.com

tota said...

I need to import hotmail contacts. can help and send me the code.
ebtsam.138@hotmail.com