oauthLibGithub

A wrapper for Github authentication on Android

License

License

Categories

Categories

Github Development Tools Version Controls
GroupId

GroupId

com.github.geniushkg
ArtifactId

ArtifactId

github_oauth
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

aar
Description

Description

oauthLibGithub
A wrapper for Github authentication on Android
Project URL

Project URL

https://github.com/geniushkg/github-oauth/
Source Code Management

Source Code Management

https://github.com/geniushkg/github-oauth/

Download github_oauth

Filename Size
github_oauth-1.0.0.pom -1 bytes
Browse

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.geniushkg/github_oauth/ -->
<dependency>
    <groupId>com.github.geniushkg</groupId>
    <artifactId>github_oauth</artifactId>
    <version>1.0.0</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/com.github.geniushkg/github_oauth/
implementation 'com.github.geniushkg:github_oauth:1.0.0'
// https://jarcasting.com/artifacts/com.github.geniushkg/github_oauth/
implementation ("com.github.geniushkg:github_oauth:1.0.0")
'com.github.geniushkg:github_oauth:aar:1.0.0'
<dependency org="com.github.geniushkg" name="github_oauth" rev="1.0.0">
  <artifact name="github_oauth" type="aar" />
</dependency>
@Grapes(
@Grab(group='com.github.geniushkg', module='github_oauth', version='1.0.0')
)
libraryDependencies += "com.github.geniushkg" % "github_oauth" % "1.0.0"
[com.github.geniushkg/github_oauth "1.0.0"]

Dependencies

compile (1)

Group / Artifact Type Version
com.android.support » appcompat-v7 jar 23.4.0

Project Modules

There are no modules declared in this project.

github-oauth

Simple library to integrate Github authentication to android app using OAuth.

Installation

compile 'com.github.geniushkg:oauthLibGithub:1.0.2'

Add to manifest

<uses-permission android:name="android.permission.INTERNET"/>

and activity declaration:

<activity android:name="com.hardikgoswami.oauthLibGithub.OauthActivity"/>

Github Auth Flow

Initialise new Auth instance with credentials

  1. Client id : you get it from your github profile by creating new app.
    Follow this tutorial
  2. Client Secret : same as above.
  3. NextActivity : Thats your activity you want launch after user gets authenticated.
  4. Context : you can use context variable from place where initiate the process that is getActivity() from fragment or getapplicationcontext() from activity.

Sample initialization :

    // Github ID and secret are generated in github.com profile
	// package name is your packagename
	// next activity is your activity with full name including package 
	// you can use debug(true) for logcat , use TAG = "github-oauth"
	
	// scope can also be defined (optional)

	loginButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
             GithubOauth
                    .Builder()
                    .withClientId(GITHUB_ID)
                    .withClientSecret(GITHUB_SECRET)
                    .withContext(context)
                    .packageName("com.hardikgoswami.github_oauth_lib")
                    .nextActivity("com.hardikgoswami.github_oauth_lib.UserActivity")
                    .debug(true)
                     .execute();
        }
    });

Note : Callback url can be as per your requirement or make it http://localhost while registering new Oauth application.

Note 2: Available scopes are presented on the table below

Scope Description
repo:status Access commit status
repo_deployment Access deployment status
public_repo Access public repositories
admin:org Full control of orgs and teams
write:org Read and write org and team membership
read:org Read org and team membership
admin:public_key Full control of user public keys
write:public_key Write user public keys
read:public_key Read user public keys
admin:repo_hook Full control of repository hooks
write:repo_hook Write repository hooks
read:repo_hook Read repository hooks
admin:org_hook Full control of organization hooks
gist Create gists
notifications Access notifications
user Update all user data
read:user Read all user profile data
user:email Access user email addresses (read-only)
user:follow Follow and unfollow users
delete_repo Delete repositories
admin:gpg_key Full control of user gpg keys (Developer Preview)
write:gpg_key Write user gpg keys
read:gpg_key Read user gpg keys

Execute will launch a new activity with webview and user token will be stored in shared preference

shared preference name : github_prefs

String in preference : oauth_token

	// Sample to read logged in user oauth token
    public static final String PREFERENCE = "github_prefs";
	sharedPreferences = getSharedPreferences(PREFERENCE, 0);
    String oauthToken = sharedPreferences.getString("oauth_token", null);
    Log.d(TAG, "oauth token for github loged in user is :" + oauthToken);

if you found any bug you can create issue or want to contribute feel free to PR.

Contributor's


darvid7 jdamacena

For new programmer's -> do not hesitate, please send PR we both will learn something new. :)

twitter - linkedIn - blog

Versions

Version
1.0.0