Recuperer mes contacts hotmail

alf233
Invité n'ayant pas de compte PHPfrance

30 janv. 2012, 16:54

Bonjour,

j'utilise depuis peux OpenInviter pour recuperer les contacts hotmail, google, etc...

et ainsi leurs envoyer un mail et les inviter à visiter mon site

Cependant depuis peux le plugin hotmail ne fonctionne plus

si quelq'un pouvais m'aider à regler le probleme:

Il me retourne toujours le même message d'erreur que mes identifiants soit bon ou pas, l'erreur en question est: unable to get contact

j'ai été faire un tour sur le site de l'editeur et la demo pose le même probleme

j'ai déja posté chez eux mais là ça deviens assez urgent c'est pour cela que je me tourne vers vous

voici le code qui me pose probleme
<?php
$_pluginInfo=array(
	'name'=>'Live/Hotmail',
	'version'=>'1.6.8',
	'description'=>"Get the contacts from a Windows Live/Hotmail account",
	'base_version'=>'1.8.4',
	'type'=>'email',
	'check_url'=>'http://login.live.com/login.srf?id=2',
	'requirement'=>'email',
	'allowed_domains'=>array('/(hotmail)/i','/(live)/i','/(msn)/i','/(chaishop)/i'),
	'imported_details'=>array('first_name','email_1'),
	);
/**
 * Live/Hotmail Plugin
 * 
 * Imports user's contacts from Windows Live's AddressBook
 * 
 * @author OpenInviter
 * @version 1.6.8
 */
class hotmail extends openinviter_base
	{
	private $login_ok=false;
	public $showContacts=true;
	public $internalError=false;
	protected $timeout=30;
	protected $userAgent='Mozilla/4.1 (compatible; MSIE 5.0; Symbian OS; Nokia 3650;424) Opera 6.10  [en]';
		
	public $debug_array=array(
				'initial_get'=>'srf_uPost',
				'login_post'=>'cid',				
				'get_contacts'=>'compose',
				);
	
	/**
	 * Login function
	 * 
	 * Makes all the necessary requests to authenticate
	 * the current user to the server.
	 * 
	 * @param string $user The current user.
	 * @param string $pass The password for the current user.
	 * @return bool TRUE if the current user was authenticated successfully, FALSE otherwise.
	 */
	public function login($user,$pass)
		{
		$this->resetDebugger();
		$this->service='hotmail';
		$this->service_user=$user;
		$this->service_password=$pass;
		if (!$this->init()) return false;
		$url='https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1308560124&rver=6.1.6206.0&wp=MBI&wreply=http:%2F%2Fcid-5305094c4e322785.profile.live.com%2Fcontacts%3Fwa%3Dwsignin1.0%26lc%3D1033&lc=1033&id=73625&pcexp=false&mkt=en-US';		
		$res=$this->get($url,true);		
		if ($this->checkResponse('initial_get',$res)) $this->updateDebugBuffer('initial_get',$url,'GET');
		else{
			$this->updateDebugBuffer('initial_get',$url,'GET',false);
			$this->debugRequest();
			$this->stopPlugin();
			return false;	
			}
		$form_action=$this->getElementString($res,"srf_uPost='","'");
		preg_match('#name\=\"PPFT\" id\=\"(.+)\" value\=\"(.+)\"#U',$res,$matches);
		$post_elements=array('PPFT'=>$matches[2],
							 'LoginOptions'=>1,
							 'NewUser'=>1,
							 'MobilePost'=>1,
							 'PPSX'=>'P',
							 'PwdPad'=>'',
							 'type'=>11,
							 'i3'=>25228,
							 'm1'=>1280,
							 'm2'=>1024,
							 'm3'=>0,
							 'i12'=>1,
							 'login'=>$user,
							 'passwd'=>$pass				 
							);
		$res=$this->post($form_action,$post_elements);
		if ($this->checkResponse('login_post',$res)) $this->updateDebugBuffer('login_post',$form_action,'POST',true,$post_elements);
		else{
			$this->updateDebugBuffer('login_post',$form_action,'POST',false,$post_elements);	
			$this->debugRequest();
			$this->stopPlugin();
			return false;
			}
		$this->login_ok='http://mprofile.live.com/';		
		return true;
		}

	/**
	 * Get the current user's contacts
	 * 
	 * Makes all the necesarry requests to import
	 * the current user's contacts
	 * 
	 * @return mixed The array if contacts if importing was successful, FALSE otherwise.
	 */	
	public function getMyContacts()
		{
		if (!$this->login_ok)
			{
			$this->debugRequest();
			$this->stopPlugin();
			return false;
			}
		else $url=$this->login_ok;
		$res=$this->get($url);
		if ($this->checkResponse('get_contacts',$res)) $this->updateDebugBuffer('get_contacts',$url,'GET');
		else{
			$this->updateDebugBuffer('get_contacts',$url,'GET',false);
			$this->debugRequest();
			$this->stopPlugin();
			return false;	
			}
		$page=0;
		$pagesString=$this->getElementString($res,'indexText" class="SecondaryText">(',')');
		if (!empty($pagesString)) $pagesArray=explode(" ",$pagesString);
		if (empty($pagesArray[3])) $pagesArray[3]=0;		
		while($page<=$pagesArray[3])
			{
			preg_match_all("#compose\&to\=(.+)\&amp\;ru\=#U",$res,$emails);
			preg_match_all("#class=\"BoldText\" href\=\"\/contactinfo\.aspx\?contactid\=(.+)\"\>(.+)\<#U",$res,$names);
			if (!empty($emails[1]))
				foreach($emails[1] as $id=>$email)					
					if (!empty($names[2][$id])) $contacts[str_replace('%2540','@',$email)]=array('email_1'=>str_replace('%2540','@',$email),'first_name'=>$names[2][$id]);
			$page++;
			$res=$this->get($url."?pg={$page}");
			if (empty($res)) break;
			}			
		foreach ($contacts as $email=>$name) if (!$this->isEmail($email)) unset($contacts[$email]);
		return $this->returnContacts($contacts);
		}

	/**
	 * Terminate session
	 * 
	 * Terminates the current user's session,
	 * debugs the request and reset's the internal 
	 * debudder.
	 * 
	 * @return bool TRUE if the session was terminated successfully, FALSE otherwise.
	 */
	public function logout()
		{
		if (!$this->checkSession()) return false;
		$res=$this->get("https://mid.live.com/si/logout.aspx",true);
		$this->debugRequest();
		$this->resetDebugger();
		$this->stopPlugin();
		return true;
		}
		
	}
?>

alf233
Invité n'ayant pas de compte PHPfrance

30 janv. 2012, 20:21

je remonte

ViPHP
xTG
ViPHP | 7331 Messages

30 janv. 2012, 20:55

Ce n'est pas avec ce fonctionnement que tu auras de l'aide... Peu importe sa place dans la liste des sujets.
Nous sommes tous bénévoles ici et répondons suivant nos humeurs, notre temps libre et nos connaissances.

De plus si le script fonctionnait et que tu n'as rien modifié autant sur le script que sur la configuration du serveur sur lequel il est exécuté c'est que c'est le service d'hotmail qui a été modifié et qui n'est plus accessible via ce script.
Mets toi en contact avec l'auteur de ce script pour avoir les changements.