Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/diversen/simple-php-github-api

a simple php github api
https://github.com/diversen/simple-php-github-api

github-api

Last synced: 11 days ago
JSON representation

a simple php github api

Awesome Lists containing this project

README

        

# About

Very simple github API for PHP using OAuth. 37 LOC for the API class. And a
curl helper class with 84 LOC.

# Install `simple-php-github-api`

php composer.phar require diversen/simple-php-github-api:

Or if you have placed composer.phar in `your path` as composer

composer require diversen/simple-php-github-api

# Brief explantion.

There is really only tree methods you can do. Let us see those three methods first.
(Further below is an complete example using the built-in server for easy testing).

1) Generate an access URL to github.com

~~~.php
$access_config = array (
'redirect_uri' => GITHUB_CALLBACK_URL,
'client_id' => GITHUB_ID,
'state' => md5(uniqid()),
'scope' => 'user'
);

$api = new githubapi();
$url = $api->getAccessUrl($access_config);
echo "Github Login";
~~~

2) Callback from github.com

~~~.php
$access_config = array (
'redirect_uri' => GITHUB_CALLBACK_URL,
'client_id' => GITHUB_ID,
'client_secret' => GITHUB_SECRET
);

$api = new githubapi();
$res = $api->setAccessToken($access_config);

if ($res) {
// OK
This is where we will call the api
header("Location: /api_call.php");
} else {
// Not OK. echo errors
echo "Could not get access token. Errors:
";
print_r($api->errors);
}
~~~

3) API call

For full listing see: [https://developer.github.com/v3/](https://developer.github.com/v3/)

~~~.php
// We have a access token and we can now call the api:
$api = new githubapi();

// Simple call - API get current users credentials
// This can also be done without scope

// example
// $command = '/user',
// $request = 'GET', 'POST' or 'PATCH' or 'DELETE' etc. Se API:
// $post = variables to POST array

$command = "/user";
$res = $api->apiCall($command, $request = null, $post = null);
if (!$res) {
print_r($api->errors);
die;
} else {
print_r($res);
}
~~~

# Full example

Example you can run right away using the built-in PHP-server.

## Make a github app

Log into [github.com](github.com)

Register a new application at [https://github.com/settings/developers](https://github.com/settings/developers)

You will see something like this:

![My settings](https://raw.githubusercontent.com/diversen/simple-php-github-api/master/github-api.png "My settings")

Create your app.

Enter base_dir of the `simple-php-github-api`:

cd vendor/diversen/simple-php-github-api

## Configuration

cp example/config.php-dist example/config.php

Edit config

Set config in `example/config.php` according to above settings and
the screenshot above.

Run test-server with example:

php -S localhost:8080 -t example/

## More github API info

For full listing of all API calls check:

[https://developer.github.com/v3/](https://developer.github.com/v3/)

Scope:

[https://developer.github.com/v3/oauth/#scopes](https://developer.github.com/v3/oauth/#scopes)

I have not tested many calls - but you should be able to use all. E.g. POST,
or PATCH, DELETE.

## Support

Create an issue, and Let me hear if it does not work out for you.