What you need to have:
- FacebookId
- cloned FacebookSDK: https://github.com/Microsoft/winsdkfb
- Blank UAP app
I am using Visual Studio 2015 and a UAP application so I had to add this project to my application:
FBWinSDK\FBSDK-UWP\FBSDK-UWP\FBSDK-UWP.vcxproj
and then add the reference to my blank app.
your application should look as follows:
Next we are going to need to get the Id of our application :
string SID = WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString();
you will need to add this using of this code to work:
using Windows.Security.Authentication.Web;
Next we need to get the Facebook session, we will need our Facebook Id and our Windows Application id as follow:
FBSession sess = FBSession.ActiveSession; sess.FBAppId = "<Facebook App ID>"; sess.WinAppId = "<Windows or Windows Phone Store ID depending on the target device>";
you will need to add this using of this code to work:
using Facebook;
using Facebook;
And lastly we need to get the login prompt and set the permitions, the permitions are to be set in a list of strings:
// Add permissions required by the app private static readonly List<string> PermissionList = new List<String>() { "user_about_me", "email", "publish_actions" };
And here is the login code:
In the application that you can find on Github, you will fnd evrything on one page:
FBPermissions permissions = new FBPermissions(PermissionList); // Login to Facebook FBResult result = await sess.LoginAsync(permissions); if (result.Succeeded) { // Login successful return sess.AccessTokenData.AccessToken; } else { // Login failed return null; }
In the application that you can find on Github, you will fnd evrything on one page:
public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } // Add permissions required by the app private static readonly List<string> PermissionList = new List<String>() { "user_about_me", "email", "publish_actions" }; public async Task<string> LogIntoFacebook() { //getting application Id string SID = WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString(); // Get active session FBSession sess = FBSession.ActiveSession; sess.FBAppId = Dailymotion.Core.Constants.FacebookAppId; sess.WinAppId = SID; //setting Permissions FBPermissions permissions = new FBPermissions(PermissionList); try { // Login to Facebook FBResult result = await sess.LoginAsync(permissions); if (result.Succeeded) { // Login successful return sess.AccessTokenData.AccessToken; } else { // Login failed return null; } } catch (InvalidOperationException ex) { //error handling return null; } catch (Exception ex) { //error handling return null; } } private async void ButtonBase_OnClick(object sender, RoutedEventArgs e) { //get the access token to login var result = await LogIntoFacebook(); } }
Setting up your account
Next you will need to access you developer account on Facebook: https://developers.facebook.com/apps/
You will need to create a new app, you fill find you app Id here and then you will need to setup the Windows Store SID that you can find in your application and add it here under the setting panel.
Update 1:
SDK; https://github.com/Microsoft/winsdkfbUpdate 1:
To make this work you also need to go to Facebook Developer website: https://developers.facebook.com
under: your app name -> Settings -> Advance:
And then under: Valid OAuth redirect URIs you need to add: https://www.facebook.com/connect/login_success.html
More information here:
http://blogs.windows.com/buildingapps/2015/07/14/windows-sdk-for-facebook/