// Use the Alloy.Globals.Facebook namespace to make Facebook module API calls var facebook = Alloy.Globals.Facebook; // substitute your own Azure mobile service URL var appURL = "https://tiazure.azure-mobile.net/"; // set your Facebook app ID in tiapp.xml // FACEBOOK_APP_ID // declare Facebook modules in tiapp.xml // // // facebook // facebook // // retrieve Facebook app ID as set in tiapp.xml facebook.appid = Ti.App.Properties.getString('ti.facebook.appid'); // set Facebook permissions facebook.permissions = ['publish_actions']; // set FB login listener facebook.addEventListener('login', function(e) { if (e.success) { console.info(JSON.stringify(e)); // FB returns accessToken console.info("token: "+facebook.accessToken); // pass FB accessToken to Azure authentication method authAzure({"token":facebook.accessToken}); } else if (e.error) { console.info(JSON.stringify(e)); alert(e.error); } else if (e.cancelled) { console.info(JSON.stringify(e)); alert("Canceled"); } }); // method to retrieve Azure function authAzure(_opts) { var endpoint = appURL + "login/facebook"; var client = Ti.Network.createHTTPClient({ // function called when the response data is available onload : function(e) { // celebration! We've successfully authenticated to Azure // parse Azure authentication token var authToken = JSON.parse(this.responseText).authenticationToken; // display Azure authentication token to console console.info("Azure auth token: " + authToken); alert('success'); }, // function called when an error occurs, including a timeout onerror : function(e) { Ti.API.debug('error: ' + e.error); alert('error'); }, timeout : 5000 // in milliseconds }); // Prepare the connection. client.open("POST", endpoint); // Send the request. client.send({"access_token":_opts.token}); }; // set Facebook button style $.fbButton.style = facebook.BUTTON_STYLE_WIDE; // open window $.index.open();