Importing Yahoo Contacts Using CURL and PHP

Here is the code to import yahoo address book using curl and php. This is very helpful if we want to import the contacts into our site from yahoo. Give a try and please comment on this script.

<?
function yahoo_login($email_id, $password)
{
//  Create URL
$url = “https://login.yahoo.com/config/login?&#8221;;
$query_string = “.tries=2&.src=ym&.md5=&.hash=&.js=&.last=&promo=&.intl=us&.bypass=”;
$query_string .= “&.partner=&.u=4eo6isd23l8r3&.v=0&.challenge=gsMsEcoZP7km3N3NeI4mX”;
$query_string .= “kGB7zMV&.yplus=&.emailCode=&pkg=&stepid=&.ev=&hasMsgr=1&.chkP=Y&.”;
$query_string .= “done=http%3A%2F%2Fmail.yahoo.com&login=$email_id&passwd=$password”;
$url_login = $url . $query_string;
//  End Create URL

//  Execute Curl For Login
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url_login);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt ($ch, CURLOPT_COOKIEJAR, ‘cookie.txt’);
curl_setopt($ch, CURLOPT_HEADER , 1);
ob_start();
$response = curl_exec ($ch);
ob_end_clean();
curl_close ($ch);
unset($ch);
//  End Execute Curl For Login

//  Call Address Book Page Through Curl
$url_addressbook = “http://address.yahoo.com/yab/us&#8221;;
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEFILE, “cookie.txt”);
curl_setopt($ch, CURLOPT_HEADER , 1);
curl_setopt($ch, CURLOPT_URL, $url_addressbook);
$result = curl_exec ($ch);
curl_close ($ch);
unset($ch);
//  End Call Address Book Page Through Curl

//  Manuplate String
$result = preg_replace(“([\r\n\t])”,” “,$result);
$result = strip_tags($result);
$arr_result = explode(“[“, $result);
$arr_result = explode(“{“,$arr_result[2]);

$arr_filter = array();
for($i=0; $i<sizeof($arr_result); $i++)
{
if(strpos($arr_result[$i], ‘@’) > 0 && strpos($arr_result[$i], ‘.’) > 0)
{
if(!in_array($arr_result[$i], $arr_filter, TRUE))
$arr_filter[] = $arr_result[$i];
}
}
//  End Manuplate String

//  Return Result Array
return $arr_filter;
//  End Return Result Array
}
$res = yahoo_login(“username”,”password”);
var_dump($res);
?>

14 thoughts on “Importing Yahoo Contacts Using CURL and PHP

  1. harshal

    nopes it doesnt work for me.. even after entering $email_id and $password manully inside function it returns invalid login

    Reply
  2. Thamotharan

    Its really great, its woking well for me, we need to make some changes in this code.
    Instead of following line
    $result = preg_replace(“([\r\n\t])”, ” “, $result);
    $result = strip_tags($result);
    $arr_result = explode(” “, $result);

    we need to make this changes

    $result = preg_replace(“([\r\n\t])”,” “,$result);
    $result = strip_tags($result);
    $arr_result = explode(“[“, $result);
    $arr_result = explode(“{“,$arr_result[2]);

    Thanks,
    Thamotharan.R

    Reply

Leave a comment