52 lines
1.8 KiB
PHP
52 lines
1.8 KiB
PHP
|
|
<?
|
||
|
|
|
||
|
|
namespace integration;
|
||
|
|
|
||
|
|
class MailRu {
|
||
|
|
|
||
|
|
|
||
|
|
static function urlOAuth($app_id,$callback,$state=1,$type='code',$scope='mail.imap userinfo',$options = []){
|
||
|
|
return 'https://oauth.mail.ru/login?client_id='.$app_id.'&response_type='.$type.'&scope='.$scope.'&redirect_uri='.$callback.'&state='.$state;
|
||
|
|
}
|
||
|
|
|
||
|
|
static function getTokenByCode($code,$app_id,$app_secret,$redirect,$options = []){
|
||
|
|
$res = null;
|
||
|
|
$url = 'https://oauth.mail.ru/token';
|
||
|
|
$data = [
|
||
|
|
'grant_type' =>'authorization_code',
|
||
|
|
'code' =>$code,
|
||
|
|
'redirect_uri' =>$redirect,
|
||
|
|
'client_id' =>$app_id,
|
||
|
|
'client_secret' =>$app_secret,
|
||
|
|
/**/
|
||
|
|
];
|
||
|
|
|
||
|
|
if ($curl = curl_init()){
|
||
|
|
$user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17';
|
||
|
|
curl_setopt($curl, CURLOPT_URL, $url);
|
||
|
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
|
||
|
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0);
|
||
|
|
curl_setopt($curl, CURLOPT_POST,1);
|
||
|
|
curl_setopt($curl, CURLOPT_POSTFIELDS,http_build_query($data));
|
||
|
|
//*
|
||
|
|
curl_setopt($curl, CURLOPT_USERAGENT,$user_agent);
|
||
|
|
/*
|
||
|
|
curl_setopt($curl, CURLOPT_HEADER,array(
|
||
|
|
'Content-type: application/x-www-form-urlencoded',
|
||
|
|
'Authorization: Basic '.base64_encode($app_id.':'.$app_secret),
|
||
|
|
'User-agent: '.$user_agent,
|
||
|
|
));
|
||
|
|
/**/
|
||
|
|
$out = curl_exec($curl);
|
||
|
|
|
||
|
|
echo '<pre>';
|
||
|
|
echo var_dump($out);
|
||
|
|
echo '</pre>';
|
||
|
|
curl_close($curl);
|
||
|
|
$res = json_decode($out,true);
|
||
|
|
}
|
||
|
|
|
||
|
|
return $res;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|