Create New Item
type
File
Folder
name
Search file in folder and subfolders...
Are you sure want to rename?
/
app
/
lib
/
ng-cordova-oauth
/
src
:
oauth.dropbox.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
(function() { 'use strict'; angular.module('oauth.dropbox', ['oauth.utils']) .factory('$ngCordovaDropbox', dropbox); function dropbox($q, $http, $cordovaOauthUtility) { return { signin: oauthDropbox }; /* * Sign into the Dropbox service * * @param string appKey * @param object options * @return promise */ function oauthDropbox(appKey, options) { var deferred = $q.defer(); if(window.cordova) { if($cordovaOauthUtility.isInAppBrowserInstalled()) { var redirect_uri = "http://localhost/callback"; if(options !== undefined) { if(options.hasOwnProperty("redirect_uri")) { redirect_uri = options.redirect_uri; } } var browserRef = window.cordova.InAppBrowser.open("https://www.dropbox.com/1/oauth2/authorize?client_id=" + appKey + "&redirect_uri=" + redirect_uri + "&response_type=token", "_blank", "location=no,clearsessioncache=yes,clearcache=yes"); browserRef.addEventListener("loadstart", function(event) { if ((event.url).indexOf(redirect_uri) === 0) { browserRef.removeEventListener("exit",function(event){}); browserRef.close(); var callbackResponse = (event.url).split("#")[1]; var responseParameters = (callbackResponse).split("&"); var parameterMap = []; for(var i = 0; i < responseParameters.length; i++) { parameterMap[responseParameters[i].split("=")[0]] = responseParameters[i].split("=")[1]; } if(parameterMap.access_token !== undefined && parameterMap.access_token !== null) { deferred.resolve({ access_token: parameterMap.access_token, token_type: parameterMap.token_type, uid: parameterMap.uid }); } else { deferred.reject("Problem authenticating"); } } }); browserRef.addEventListener('exit', function(event) { deferred.reject("The sign in flow was canceled"); }); } else { deferred.reject("Could not find InAppBrowser plugin"); } } else { deferred.reject("Cannot authenticate via a web browser"); } return deferred.promise; } } dropbox.$inject = ['$q', '$http', '$cordovaOauthUtility']; })();