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
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
Judul : Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication
link : Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication
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.
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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
keytool -exportcert -alias androiddebugkey -keystore ~/.local/share/Xamarin/Mono\ for\ Android/debug.keystore | openssl sha1 -binary | openssl base64 |
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Button | |
android:id="@+id/fbButton" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:text="LOGIN WITH FACEBOOK" /> |
On the MainActivity class create a static TaskScheduler for UI.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// UI Scheduler | |
static readonly TaskScheduler UIScheduler = TaskScheduler.FromCurrentSynchronizationContext(); |
Then, create a method LoginToFacebook that will perform all the job. Below the documented source code of the method:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
Now, all we need to do is to wire the method to the button click, add the following code in the OnCreate method:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Facebook Authentication | |
Button fbButton = FindViewById<Button>(Resource.Id.fbButton); | |
fbButton.Click += (sender, args) => | |
{ | |
LoginToFacebook(true); | |
}; |
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
Hands on Xamarin Platform Pipeline - Develop - Add Facebook authentication
4/
5
Oleh
Unknown