Войдите в Github через PHP cURL

Я делаю сайт, где люди могут подключить свой аккаунт 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>';

0

Решение

Вы можете попробовать обычную аутентификацию 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);

Я надеюсь, что это поможет вам.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]