#php
Вопрос:
Вот мой код, который я использую для входа в Microsoft
lt;?php session_start(); $client_id = "*****************"; $redirect_uri = "****************"; $urls = 'https://login.live.com/oauth20_authorize.srf?client_id=' . $client_id . 'amp;scope=wl.signin wl.basic wl.emails wl.contacts_emailsamp;response_type=codeamp;redirect_uri=' . $redirect_uri; header("Location: " . $urls); lt;!-- Microsoft Start --gt; lt;?php if (isset($_GET['code']) amp;amp; $_GET['code'] != "") { $auth_code = $_GET["code"]; $client_id = "*********************"; $client_secret = "****************"; $redirect_uri = "http://localhost/client_stinkspolitics_us/visitor/register"; $fields = array( 'code' =gt; urlencode($auth_code), 'client_id' =gt; urlencode($client_id), 'client_secret' =gt; urlencode($client_secret), 'redirect_uri' =gt; urlencode($redirect_uri), 'grant_type' =gt; urlencode('authorization_code') ); $post = ''; foreach ($fields as $key =gt; $value) { $post .= $key . '=' . $value . 'amp;'; } $post = rtrim($post, 'amp;'); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'https://login.live.com/oauth20_token.srf'); curl_setopt($curl, CURLOPT_POST, 5); curl_setopt($curl, CURLOPT_POSTFIELDS, $post); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); $result = curl_exec($curl); curl_close($curl); $response = json_decode($result); $accesstoken = $response-gt;access_token; $get_profile_url = 'https://apis.live.net/v5.0/me?access_token=' . $accesstoken; $xmlprofile_res = file_get_contents($get_profile_url); $profile_res = json_decode($xmlprofile_res, true); if ($profile_res) $microsoft_email = $profile_res['emails']['account']; $_SESSION['microsoft_email'] = $microsoft_email; } ?gt; lt;!-- Microsoft End --gt;
Проблема в том, что при входе в систему отображается эта ошибка, а при обновлении страницы она автоматически выходит из системы. Я хочу получить имя пользователя после успешного входа в систему, но после входа в систему он показывает эту ошибку, и когда кто-то вводит имя пользователя, имя пользователя должно идти с сохраненной электронной почтой сеанса, но оно равно нулю.
Warning: Undefined property: stdClass::$access_token in C:xampphtdocs\visitorvendor_index.php on line 139 Warning: file_get_contents(): SSL: An existing connection was forcibly closed by the remote host in C:xampphtdocsvisitorvendor_index.php on line 141 Warning: file_get_contents(https://apis.live.net/v5.0/me?access_token=): Failed to open stream: HTTP request failed! in C:xampphtdocsvisitorvendor_index.php on line 141