Я делаю сайт, где люди могут подключить свой аккаунт Github.
Я зарегистрировал свое приложение в приложениях разработчиков на Github, чтобы иметь Client ID и Client Secret Key.
Теперь я хочу перенаправить людей на страницу входа в Github с помощью cURL в PHP.
Единственное, что я нашел в документации — это командная строка с curl, но я не знаю, как использовать ее в PHP.
curl -u username https://api.github.com/user
Спасибо за помощь!
————Редактировать————-
Ну, я использовал этот урок о Oauth на Github: http://www.phpgang.com/how-to-add-github-oauth-login-on-your-website-using-php_740.html
Все отлично работает до авторизации.
Тогда я получаю эту ошибку
Notice: Trying to get property of non-object in C:\xampp\htdocs\codesourcing\github\index.php on line 19
Some error occured try again
Строка 19 — это if ($ gitResponce-> access_token) ниже:
$data = array('url' => 'https://github.com/login/oauth/access_token',
'data' => $postvars,
'header' => array("Content-Type: application/x-www-form-urlencoded","Accept: application/json"),
'method' => 'POST');
$gitResponce = json_decode(curlRequest($data));
if($gitResponce->access_token)
{
$data = array('url' => 'https://api.github.com/user?access_token='.$gitResponce->access_token,
'header' => array("Content-Type: application/x-www-form-urlencoded","User-Agent: ".appName,"Accept: application/json"),
'method' => 'GET');
$gitUser = json_decode(curlRequest($data));
echo '
<table>
<tr>
<td colspan="2"><a href="'.$gitUser->html_url.'" target="_blank"><img src="'.$gitUser->avatar_url.'" width="200px" height="200px"/></a></td>
</tr>
<tr>
<td>Name:</td>
<td>'.$gitUser->name.'</td>
</tr>
<tr>
<td>Email:</td>
<td>'.$gitUser->email.'</td>
</tr>
<tr>
<td>Location:</td>
<td>'.$gitUser->location.'</td>
</tr>
<tr>
<td>Website:</td>
<td>'.$gitUser->blog.'</td>
</tr>
</table>';
Вы можете попробовать обычную аутентификацию curl php
<?php
$username='username';
$password='password';
$ch = curl_init();
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:7.0.1) Gecko/20100101 Firefox/7.0.1');
curl_setopt($ch, CURLOPT_URL, 'https://api.github.com/user');
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code
$result=curl_exec ($ch);
curl_close ($ch);
print_r($status_code);
print_r($result);
Я надеюсь, что это поможет вам.
Других решений пока нет …