Search code examples
androidfacebookionic-frameworkoauthcordova-plugins

How to get User data (Public profile and Email ) In ionic framework


I am working on Ionic Mobile Application. After Creating Facebook Login button(Working fine) i want to get User data (Public profile and Email for my database.

My Index.html

<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/angular-sanitize/angular-sanitize.min.js"></script>
<script src="js/ng-cordova.min.js"></script><script src="lib/ng-cordova-oauth/dist/ng-cordova-oauth.min.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>

<!-- your app's js -->

<script src="js/app.js"></script>
 <script src="js/services.js"></script>
<script src="js/controllers.js"></script>

Controller.js

.controller('login',['$scope','myService','$location','$state','$timeout',function($scope,myService,$location,$state,$timeout)
{
  $scope.fbLogin = function ($cordovaOauth,$http) {
facebookLogin(window.cordovaOauth, window.http);
console.log(fbLogin);
}
}])

app.js

var app = angular.module('starter', ['ionic', 'starter.controllers','starter.services','ngSanitize',  'ngCordova', 'ngCordovaOauth']);

Please tell me where i am doing wrong. And Sometimes i Get $cordovaOauth error. Modular is not Injected.


Solution

  • function login(){
    facebookLogin(window.cordovaOauth, window.http);
    }
    
    function facebookLogin($cordovaOauth, $http)
    {
    $cordovaOauth.facebook("1633195863589792", ["email", "public_profile"], {redirect_uri: "http://localhost/callback"}).then(function(result){
        displayData($http, result.access_token);
    },  function(error){
            alert("Error: " + error);
    });
    }
    
    
    function displayData($http, access_token)
    {
    $http.get("https://graph.facebook.com/v2.2/me", {params: {access_token: access_token, fields: "name,gender,location,picture", format: "json" }}).then(function(result) {
        var name = result.data.name;
        var gender = result.data.gender;
        var picture = result.data.picture;
    
    
    }, function(error) {
        alert("Error: " + error);
    });
    }