Wednesday, April 12, 2017

Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication

Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication - Hallo sahabat Google Android Developer Tutorial, Pada Artikel yang anda baca kali ini dengan judul Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication, kami telah mempersiapkan artikel ini dengan baik untuk anda baca dan ambil informasi didalamnya. mudah-mudahan isi postingan Artikel android, Artikel authentication, Artikel facebook, Artikel oauth, Artikel xamarin, yang kami tulis ini dapat anda pahami. baiklah, selamat membaca.

Judul : Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication
link : Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication

Baca juga


Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication

In this article I'll show you how to add Facebook authentication to the "RememberIt" mobile application.

If not yet done, please read the previous post in the Hands on Xamarin Platform Pipeline series.

Facebook app creation

In order to be able to add Facebook authentication, we need to create a Facebook App. To do this, navigate to: https://developers.facebook.com/apps, click on "Add a New App" button then fill in the application information.
Go to Settings then copy the App ID.
Then always in Settings, click on Add Platform then Select Android.
Fill in the following information:
- Google Play Package Name: the package name defined in Android Manifest file.
- Class Name: MainActivity in our case.
- Key Hashes: where we can add Debug and Release Android key hashes. To generate the Debug Key hash, open the terminal then run the command below:
keytool -exportcert -alias androiddebugkey -keystore ~/.local/share/Xamarin/Mono\ for\ Android/debug.keystore | openssl sha1 -binary | openssl base64
view raw gistfile1.txt hosted with ❤ by GitHub
Use 'android' as password then copy-paste the generated hash key.
Now, click on Add Product under Products category then choose Facebook Login.
Now, activate all the OAuth parameters and use the URL: https://www.facebook.com/connect/login_success.html as Valid OAuth redirect URL.
Finally, we can make our Facebook application public under App Review menu as shown below.

Add Facebook authentication to RememberIt application

For this, we will use the great Xamarin Component Xamarin.Auth, for more details you can check the official documentation.

Within the project, double click on Components then search for Xamarin.Auth.

Click on 'Add to App', once installed we can browse some samples as well as the documentation directly on Xamarin IDE.
Now, within the project double click on References then add the assembly System.Json.
Modify the manifest file to add internet permission and app_id meta data as presented below.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.anas.rememberit">
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"/>
<application android:allowBackup="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:theme="@style/AppTheme">
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
</application>
</manifest>

Open the Main.axml layout then add the facebook button.
<Button
android:id="@+id/fbButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="LOGIN WITH FACEBOOK" />
view raw Main.axml hosted with ❤ by GitHub

On the MainActivity class create a static TaskScheduler for UI.
// UI Scheduler
static readonly TaskScheduler UIScheduler = TaskScheduler.FromCurrentSynchronizationContext();
view raw MainActivity.cs hosted with ❤ by GitHub

Then, create a method LoginToFacebook that will perform all the job. Below the documented source code of the method:
void LoginToFacebook(bool allowCancel)
{
var auth = new OAuth2Authenticator(
clientId: "395508370820207", // APP ID retrieved from Facebook created Application
scope: "email", // the scopes for the API
authorizeUrl: new Uri("https://m.facebook.com/dialog/oauth/"), // the auth URL for the service
redirectUrl: new Uri("https://www.facebook.com/connect/login_success.html"));
// To allow cancel of the authentication
auth.AllowCancel = allowCancel;
// If authorization succeeds or is canceled, .Completed will be fired.
auth.Completed += (s, ee) =>
{
if (!ee.IsAuthenticated)
{
// Not Authenticated
var builder = new AlertDialog.Builder(this);
builder.SetMessage("Not Authenticated");
builder.SetPositiveButton("Ok", (o, e) => { });
builder.Create().Show();
return;
}
// Now that we're logged in, make a OAuth2 request to get the user's info.
var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me"), null, ee.Account);
request.GetResponseAsync().ContinueWith(t =>
{
if (t.IsFaulted)
{
// Problem in authentication
var builder = new AlertDialog.Builder(this);
builder.SetTitle("Error");
builder.SetMessage(t.Exception.Flatten().InnerException.ToString());
builder.SetPositiveButton("Ok", (o, e) => { });
builder.Create().Show();
}
else if (!t.IsCanceled)
{
// Authentication succeeded, show the toast then go the main activity
var obj = JsonValue.Parse(t.Result.GetResponseText());
Toast.MakeText(this, string.Format("Welcome {0}.", obj["name"]), ToastLength.Long).Show();
StartActivity(typeof(RememberListActivity));
}
}, UIScheduler);
};
var intent = auth.GetUI(this);
StartActivity(intent);
}
view raw MainActivity.cs hosted with ❤ by GitHub

Now, all we need to do is to wire the method to the button click, add the following code in the OnCreate method:
// Facebook Authentication
Button fbButton = FindViewById<Button>(Resource.Id.fbButton);
fbButton.Click += (sender, args) =>
{
LoginToFacebook(true);
};
view raw MainActivity.cs hosted with ❤ by GitHub

Build, Deploy and ...



Complete source code is available on GitHub.

See you soon!


Demikianlah Artikel Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication

Sekianlah artikel Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.

Anda sekarang membaca artikel Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication dengan alamat link https://googleandroiddevelopertutorial.blogspot.com/2017/04/hands-on-xamarin-platform-pipeline_12.html

Artikel Terkait

Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication
4/ 5
Oleh

Berlangganan

Suka dengan artikel di atas? Silakan berlangganan gratis via email