Example #1
0
        public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previousAuthResult, string userAccessToken)
        {
            string id   = previousAuthResult.ProviderUserId;
            string name = previousAuthResult.UserName;

            return(new AuthenticationResult(true, ProviderName, id, name, previousAuthResult.ExtraData));
        }
Example #2
0
        public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previousAuthResult, string token, string userAccessSecret, string returnUrl)
        {
            var    client          = Build(clientConfiguration) as LinkedInOAuth2Client;
            string userAccessToken = client.GetAccessToken(new Uri(returnUrl), token);

            return(GetUserData(clientConfiguration, previousAuthResult, userAccessToken));
        }
Example #3
0
        public IAuthenticationClient Build(ProviderConfigurationRecord providerConfigurationRecord)
        {
            string ClientId     = providerConfigurationRecord.ProviderIdKey;
            string ClientSecret = providerConfigurationRecord.ProviderSecret;
            var    client       = new PinterestOAuth2Client(ClientId, ClientSecret);

            return(client);
        }
Example #4
0
        public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previousAuthResult, string token, string userAccessSecret, string returnUrl)
        {
            var client = Build(clientConfiguration) as GoogleOAuth2Client;
            //Logger.Error("Inizio chiamata Google");
            string userAccessToken = client.GetAccessToken(new Uri(returnUrl), token);

            //Logger.Error("access token: {0}", userAccessToken);
            return(GetUserData(clientConfiguration, previousAuthResult, userAccessToken));
        }
        public IAuthenticationClient Build(ProviderConfigurationRecord providerConfigurationRecord)
        {
            if (string.IsNullOrWhiteSpace(providerConfigurationRecord.ProviderIdentifier))
            {
                throw new Exception("Client Identifier must be known if Provider is unknown.");
            }

            return(new OpenIdClient(_providerName, Identifier.Parse(providerConfigurationRecord.ProviderIdentifier)));
        }
Example #6
0
        public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previousAuthResult, string userAccessToken)
        {
            var userData = (Build(clientConfiguration) as PinterestOAuth2Client).GetUserDataDictionary(userAccessToken);

            userData["accesstoken"] = userAccessToken;
            string id   = userData["id"];
            string name = userData["first_name"] + userData["last_name"];

            return(new AuthenticationResult(true, this.ProviderName, id, name, userData));
        }
        public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previousAuthResult, string userAccessToken)
        {
            string secret = "";

            if (previousAuthResult.ExtraData.ContainsKey("secret"))
            {
                secret = previousAuthResult.ExtraData["secret"];
            }
            return(GetUserData(clientConfiguration, previousAuthResult, userAccessToken, secret, ""));
        }
Example #8
0
 public static void ToViewModel(this ProviderConfigurationRecord record, ProviderConfigurationViewModel model)
 {
     model.Id                 = record.Id;
     model.DisplayName        = record.DisplayName;
     model.ProviderIdentifier = record.ProviderIdentifier;
     model.ProviderIdKey      = record.ProviderIdKey;
     model.ProviderName       = record.ProviderName;
     model.ProviderSecret     = record.ProviderSecret;
     model.UserIdentifier     = record.UserIdentifier;
     model.IsEnabled          = record.IsEnabled;
 }
Example #9
0
        public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previosAuthResult, string userAccessToken)
        {
            var userData = (Build(clientConfiguration) as GoogleOAuth2Client).GetUserDataDictionary(userAccessToken);

            //Logger.Error("user data count: {0}", userData.Count);
            userData["accesstoken"] = userAccessToken;
            string id   = userData["id"];
            string name = userData["email"];

            userData["name"] = userData["email"];
            return(new AuthenticationResult(true, this.ProviderName, id, name, userData));
        }
Example #10
0
        public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previousAuthResult, string userAccessToken)
        {
            var serializer = new DataContractJsonSerializer(typeof(FacebookGraphData));
            FacebookGraphData graphData;
            var request =
                WebRequest.Create(
                    "https://graph.facebook.com/me?fields=id,email,birthday,first_name,last_name,name,locale,link,gender,timezone,updated_time,verified&access_token=" + userAccessToken);

            try {
                using (var response = request.GetResponse()) {
                    using (var responseStream = response.GetResponseStream()) {
                        graphData = (FacebookGraphData)serializer.ReadObject(responseStream);
                    }
                }
            }
            catch {
                return(AuthenticationResult.Failed);
            }
            // this dictionary must contains
            var userData = new Dictionary <string, string>();

            userData["id"]       = graphData.Id;
            userData["username"] = graphData.Email;
            userData["email"]    = graphData.Email;
            userData["name"]     = graphData.Name;
            userData["link"]     = graphData.Link == null ? null : graphData.Link.AbsoluteUri;
            userData["gender"]   = graphData.Gender;
            userData["birthday"] = graphData.Birthday;

            if (userData == null)
            {
                return(AuthenticationResult.Failed);
            }

            string id = userData["id"];
            string name;

            // Some oAuth providers do not return value for the 'username' attribute.
            // In that case, try the 'name' attribute. If it's still unavailable, fall back to 'id'
            if (!userData.TryGetValue("username", out name) && !userData.TryGetValue("name", out name))
            {
                name = id;
            }

            // add the access token to the user data dictionary just in case page developers want to use it
            userData["accesstoken"] = userAccessToken;

            return(new AuthenticationResult(
                       isSuccessful: true, provider: this.ProviderName, providerUserId: id, userName: name, extraData: userData));
        }
Example #11
0
 public static void ToRecord(this ProviderConfigurationViewModel model, ProviderConfigurationRecord record)
 {
     if (record == null)
     {
         return;
     }
     record.DisplayName        = model.DisplayName;
     record.ProviderIdentifier = model.ProviderIdentifier;
     record.ProviderIdKey      = model.ProviderIdKey;
     record.ProviderName       = model.ProviderName;
     record.ProviderSecret     = model.ProviderSecret;
     record.UserIdentifier     = model.UserIdentifier;
     record.IsEnabled          = model.IsEnabled;
 }
Example #12
0
        public int Create(ProviderConfigurationCreateParams parameters)
        {
            var provider = new ProviderConfigurationRecord {
                DisplayName        = parameters.DisplayName,
                ProviderName       = parameters.ProviderName,
                ProviderIdentifier = parameters.ProviderIdentifier,
                UserIdentifier     = parameters.UserIdentifier,
                ProviderIdKey      = parameters.ProviderIdKey,
                ProviderSecret     = parameters.ProviderSecret,
                IsEnabled          = 1
            };

            _repository.Create(provider);
            syncRepositoryStatic();
            return(provider.Id);
        }
Example #13
0
        public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previousAuthResult, string userAccessToken)
        {
            Dictionary <string, string> userData = new Dictionary <string, string>();
            string uri        = "https://apis.live.net/v5.0/me?access_token=" + userAccessToken;
            var    webRequest = (HttpWebRequest)WebRequest.Create(uri);

            using (var webResponse = webRequest.GetResponse()) {
                using (var stream = webResponse.GetResponseStream()) {
                    if (stream == null)
                    {
                        return(null);
                    }

                    using (var textReader = new StreamReader(stream)) {
                        var json   = textReader.ReadToEnd();
                        var valori = JObject.Parse(json);
                        var data   = valori.Root; // .SelectToken("data");
                        userData.Add("id", data.Value <string>("id"));
                        userData.Add("name", data.Value <string>("name"));
                        userData.Add("first_name", data.Value <string>("first_name"));
                        userData.Add("last_name", data.Value <string>("last_name"));
                        userData.Add("gender", data.Value <string>("gender"));
                        userData.Add("locale", data.Value <string>("locale"));
                        userData.Add("updated_time", data.Value <string>("updated_time"));
                        var emails = valori.SelectToken("emails");
                        userData.Add("email", emails.Value <string>("preferred"));
                    }
                }
            }

            string id   = userData["id"];
            string name = userData["name"];

            // add the access token to the user data dictionary just in case page developers want to use it
            userData["accesstoken"] = userAccessToken;
            return(new AuthenticationResult(true, ProviderName, id, name, userData));
        }
        protected override DriverResult Display(TwitterPostPart part, string displayType, dynamic shapeHelper)
        {
            //Determine if we're on an admin page
            bool isAdmin = AdminFilter.IsApplied(_orchardServices.WorkContext.HttpContext.Request.RequestContext);

            if (isAdmin)
            {
                if ((displayType == "Detail") || (displayType == "Summary"))
                {
                    ProviderConfigurationRecord pcr = _providerConfigurationService.Get("Twitter");
                    TwitterOgVM vm = new TwitterOgVM();
                    if (pcr != null)
                    {
                        vm.Site = pcr.UserIdentifier;
                    }
                    TwitterPostPartSettingVM setting = part.Settings.GetModel <TwitterPostPartSettingVM>();
                    var tokens = new Dictionary <string, object> {
                        { "Content", part.ContentItem }
                    };
                    if (!string.IsNullOrEmpty(setting.Description))
                    {
                        vm.Description = _tokenizer.Replace(setting.Description, tokens);
                    }
                    else
                    {
                        vm.Description = part.TwitterDescription;
                    }
                    if (!string.IsNullOrEmpty(setting.Image))
                    {
                        string ids = _tokenizer.Replace(setting.Image, tokens);

                        int idimage;
                        Int32.TryParse(ids.Replace("{", "").Replace("}", "").Split(',')[0], out idimage);;
                        if (idimage > 0)
                        {
                            // _orchardServices.ContentManager.Get(id);
                            // vm.Image = Url.ItemDisplayUrl(_orchardServices.ContentManager.Get(id));
                            var urlHelper = new UrlHelper(_orchardServices.WorkContext.HttpContext.Request.RequestContext);
                            //       vm.Image = urlHelper.ItemDisplayUrl(_orchardServices.ContentManager.Get(id));// get current display link
                            //   Fvm.Link = urlHelper.MakeAbsolute(urlHelper.ItemDisplayUrl(Twitterpart));// get current display link
                            var ContentImage = _orchardServices.ContentManager.Get(idimage, VersionOptions.Published);
                            //   var pathdocument = Path.Combine(ContentImage.As<MediaPart>().FolderPath, ContentImage.As<MediaPart>().FileName);
                            //  part.TwitterPicture = pathdocument;//
                            vm.Image = urlHelper.MakeAbsolute(ContentImage.As <MediaPart>().MediaUrl);
                            //   .ResizeMediaUrl(Width: previewWidth, Height: previewHeight, Mode: "crop", Alignment: "middlecenter", Path: Model.MediaData.MediaUrl)');
                        }
                        else
                        {
                            vm.Image = "";
                        }
                    }
                    else
                    {
                        vm.Image = part.TwitterPicture;
                    }
                    if (!string.IsNullOrEmpty(setting.Title))
                    {
                        vm.Title = _tokenizer.Replace(setting.Title, tokens);
                    }

                    else
                    {
                        vm.Title = part.TwitterTitle;
                    }
                    return(ContentShape("Parts_TwitterPost_Detail",
                                        () => shapeHelper.Parts_TwitterPost_Detail(Twitter: vm, SendOnNextPublish: part.SendOnNextPublish, TwitterMessageSent: part.TwitterMessageSent)));
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Example #15
0
 public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previousAuthResult, string token, string userAccessSecret, string returnUrl)
 {
     return(GetUserData(clientConfiguration, previousAuthResult, token));
 }
 private static IAuthenticationClient CreateOpenIdClient(ProviderConfigurationRecord clientConfiguration)
 {
     return(new CustomOpenIdAuthenticationClient(clientConfiguration.ProviderName).Build(clientConfiguration));
 }
Example #17
0
 public IAuthenticationClient Build(ProviderConfigurationRecord providerConfigurationRecord)
 {
     return(new YahooOpenIdClient());
 }
        public AuthenticationResult GetUserData(ProviderConfigurationRecord clientConfiguration, AuthenticationResult previousAuthResult, string token, string userAccessSecret, string returnUrl)
        {
            var userAccessToken = token;

            if (String.IsNullOrWhiteSpace(userAccessSecret))
            {
                if (previousAuthResult.ExtraData.ContainsKey("accesstoken") == false)
                {
                    previousAuthResult.ExtraData.Add("accesstoken", userAccessToken);
                }
                return(new AuthenticationResult(true, this.ProviderName, previousAuthResult.ProviderUserId, previousAuthResult.UserName, previousAuthResult.ExtraData));
            }
            var twitterUserSerializer = new DataContractJsonSerializer(typeof(TwitterUserData));

            TwitterUserData twitterUserData;
            // recupero lo User_Name e la mail relativi al token
            var accountSettingsRequest = PrepareAuthorizedRequestGet(userAccessToken,
                                                                     userAccessSecret,
                                                                     clientConfiguration.ProviderIdKey,
                                                                     clientConfiguration.ProviderSecret,
                                                                     "https://api.twitter.com/1.1/account/verify_credentials.json?skip_status=true&include_email=true");

            try {
                using (var response = accountSettingsRequest.GetResponse()) {
                    using (var responseStream = response.GetResponseStream()) {
                        twitterUserData = (TwitterUserData)twitterUserSerializer.ReadObject(responseStream);
                        if (String.IsNullOrWhiteSpace(twitterUserData.Screen_Name))
                        {
                            Logger.Error("Twitter: missing screen_name");
                            return(AuthenticationResult.Failed);
                        }
                    }
                }
            }
            catch (Exception ex) {
                Logger.Error(ex, "Twitter verify_credentials");
                return(AuthenticationResult.Failed);
            }

            var userData = new Dictionary <string, string>();

            userData["id"]       = userAccessToken.Split('-')[0];
            userData["username"] = twitterUserData.Screen_Name;
            userData["email"]    = twitterUserData.Email;

            string id = userData["id"];
            string name;

            // Some oAuth providers do not return value for the 'username' attribute.
            // In that case, try the 'name' attribute. If it's still unavailable, fall back to 'id'
            if (!userData.TryGetValue("username", out name) && !userData.TryGetValue("name", out name))
            {
                name = id;
            }

            // add the access token to the user data dictionary just in case page developers want to use it
            userData["accesstoken"] = userAccessToken;

            return(new AuthenticationResult(
                       isSuccessful: true, provider: this.ProviderName, providerUserId: id, userName: name, extraData: userData));
        }
Example #19
0
 public IAuthenticationClient Build(ProviderConfigurationRecord providerConfigurationRecord)
 {
     return(new LinkedInClient(providerConfigurationRecord.ProviderIdKey, providerConfigurationRecord.ProviderSecret));
 }
        public ResponseAction PostTwitter(PostToTwitterViewModel message)
        {
            ResponseAction rsp = new ResponseAction();

            rsp.Success = true;
            bool trysended = false;
            List <TwitterAccountPart>   TwitterAccountSettings = Twitter_GetAccessToken(message.AccountList);
            ProviderConfigurationRecord pcr = _providerConfigurationService.Get("Twitter");

            foreach (TwitterAccountPart Faccount in TwitterAccountSettings)
            {
                try {
                    trysended = true;
                    OAuthTokens accesstoken = new OAuthTokens()
                    {
                        AccessToken       = Faccount.UserToken,
                        AccessTokenSecret = Faccount.UserTokenSecret,
                        ConsumerKey       = pcr.ProviderIdKey,
                        ConsumerSecret    = pcr.ProviderSecret
                    };
                    TwitterResponse <TwitterStatus> response;
                    string realmessage = message.Message;
                    if (!string.IsNullOrEmpty(message.Link))
                    {
                        realmessage += " " + message.Link;
                    }
                    if (string.IsNullOrEmpty(message.Picture))
                    {
                        response = TwitterStatus.Update(accesstoken, realmessage.Trim());
                    }
                    else
                    {
                        var mediaPath = HostingEnvironment.IsHosted
                                ? HostingEnvironment.MapPath("~/Media/") ?? ""
                                : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Media");
                        string physicalPath = mediaPath + _shellsettings.Name + "\\" + message.Picture;
                        byte[] photo        = System.IO.File.ReadAllBytes(physicalPath);
                        response = TwitterStatus.UpdateWithMedia(accesstoken, realmessage.Trim(), photo, new StatusUpdateOptions()
                        {
                            UseSSL = true, APIBaseAddress = "http://api.twitter.com/1.1/"
                        });
                    }
                    if (response.Result != RequestResult.Success)
                    {
                        if (response.Content != null)
                        {
                            Logger.Error("response.Content:" + response.Content);
                        }
                        rsp.Success = false;
                        if (response.ErrorMessage != null)
                        {
                            Logger.Error("response.ErrorMessage:" + response.ErrorMessage);
                            _notifier.Add(NotifyType.Error, T("Can't post on twitter: {0} {1}", Faccount.DisplayAs, response.ErrorMessage));
                        }
                        else
                        {
                            var       serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                            var       jsondict   = serializer.Deserialize <Dictionary <string, object> >(response.Content);
                            ArrayList errors     = (ArrayList)jsondict["errors"];
                            foreach (System.Collections.Generic.Dictionary <string, object> error in errors)
                            {
                                string errormsg = "";
                                foreach (var errordict in error)
                                {
                                    errormsg += " " + errordict.Key.ToString() + ":" + errordict.Value.ToString();
                                }
                                _notifier.Add(NotifyType.Error, T("Can't post on twitter: {0} {1}", Faccount.DisplayAs, errormsg));
                            }
                        }
                    }
                } catch (Exception ex) {
                    Logger.Error("Twitter Posting Error Message::" + ex.Message);
                    rsp.Success = false;
                    rsp.Message = "Twitter Posting Error Message: " + ex.Message;
                    _notifier.Add(NotifyType.Error, T("Twitter Posting {0}  Error Message: {1}", Faccount.DisplayAs, ex.Message));
                }
            }
            if (trysended && rsp.Success)
            {
                _notifier.Add(NotifyType.Information, T("Twitter posted"));
            }
            return(rsp);
        }
Example #21
0
        public ActionResult GetPostTokenTwitter()
        {
            ProviderConfigurationRecord pcr = _providerConfigurationService.Get("Twitter");

            if (pcr == null)
            {
                _notifier.Add(NotifyType.Error, T("No twitter account setting added, add one in Settings -> Open Authentication"));
                return(RedirectToAction("Index", "TwitterAccount", new { area = "Laser.Orchard.Twitter", id = -10 }));
            }

            string consumerKey    = pcr.ProviderIdKey;
            string consumerSecret = pcr.ProviderSecret;

            // il meccanismo utilizzato è il 3-Legged oAuth
            if (Request["oauth_token"] == null)
            {
                string             tmpreq   = Request.Url.AbsoluteUri;
                OAuthTokenResponse reqToken = OAuthUtility.GetRequestToken(consumerKey, consumerSecret, tmpreq);
                Response.Redirect(string.Format("https://api.twitter.com/oauth/authorize?oauth_token={0}", reqToken.Token));
            }
            else
            {
                string           requestToken = Request["oauth_token"].ToString();
                string           verifier     = Request["oauth_verifier"].ToString();
                var              tokens       = OAuthUtility.GetAccessToken(consumerKey, consumerSecret, requestToken, verifier);
                TwitterAccountVM vm           = new TwitterAccountVM();
                vm.DisplayAs       = tokens.ScreenName;
                vm.UserToken       = tokens.Token;
                vm.UserTokenSecret = tokens.TokenSecret; // conterrà l'account_token_secret
                #region [recupero immagine]
                OAuthTokens accessToken = new OAuthTokens();
                accessToken.AccessToken       = vm.UserToken;
                accessToken.AccessTokenSecret = vm.UserTokenSecret;
                accessToken.ConsumerKey       = consumerKey;
                accessToken.ConsumerSecret    = consumerSecret;

                TwitterResponse <TwitterUser> myTwitterUser = TwitterUser.Show(accessToken, tokens.ScreenName);
                TwitterUser user = myTwitterUser.ResponseObject;
                var         profilePictureUrl = user.ProfileImageLocation;
                var         mediaPath         = HostingEnvironment.IsHosted
                 ? HostingEnvironment.MapPath("~/Media/") ?? ""
                 : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Media");
                WebClient webClient = new WebClient();
                webClient.DownloadFile(profilePictureUrl, mediaPath + _shellSettings.Name + @"\twitter_" + vm.DisplayAs + ".jpg");
                #endregion
                // var avatarFormat = "https://api.twitter.com/1.1/users/show.json?screen_name={0}";
                // var avatarUrl = string.Format(avatarFormat, vm.DisplayAs);
                // HttpWebRequest avatarRequest = (HttpWebRequest)WebRequest.Create(avatarUrl);
                // var timelineHeaderFormat = "{0} {1}";
                // avatarRequest.Headers.Add("Authorization", String.Format("Bearer {0}", vm.UserToken));
                //// avatarRequest.Headers.Add("Authorization",
                ////                             string.Format(timelineHeaderFormat, "oauth_token", requestToken));
                // avatarRequest.Method = "Get";
                // WebResponse timeLineResponse = avatarRequest.GetResponse();

                // var reader = new StreamReader(timeLineResponse.GetResponseStream());
                // var avatarJson = string.Empty;
                //using (authResponse) {
                //    using (var reader = new StreamReader(timeLineResponse.GetResponseStream())) {
                //        avatarJson = reader.ReadToEnd();
                //    }
                //}

                // Uri profilePictureUrl = new Uri(string.Format("https://api.twitter.com/1.1/users/show.json?screen_name={1}", vm.DisplayAs ));

                OrchardRegister(vm);
            }
            return(RedirectToAction("Index", "TwitterAccount", new { area = "Laser.Orchard.Twitter", id = -10 }));
        }
Example #22
0
        public ActionResult GetPostTokenFacebook()
        {
            ProviderConfigurationRecord pcr = _providerConfigurationService.Get("Facebook");

            if (pcr == null)
            {
                _notifier.Add(NotifyType.Error, T("No facebook account setting added, add one in Settings -> Open Authentication"));
                return(RedirectToAction("Index", "FacebookAccount", new { area = "Laser.Orchard.Facebook", id = -10 }));
            }
            string app_id     = pcr.ProviderIdKey;
            string app_secret = pcr.ProviderSecret;
            string scope      = "publish_actions,manage_pages,publish_pages,user_photos";//user_status status_updated nelle extended permission

            if (Request["code"] == null)
            {
                string url = string.Format(
                    "https://graph.facebook.com/oauth/authorize?client_id={0}&redirect_uri={1}&scope={2}",
                    app_id, Request.Url.AbsoluteUri, scope);
                Response.Redirect(url, false);
            }
            else
            {
                Dictionary <string, string> tokens = new Dictionary <string, string>();

                string url = string.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&scope={2}&code={3}&client_secret={4}",
                                           app_id, Request.Url.AbsoluteUri, scope, Request["code"].ToString(), app_secret);

                HttpWebRequest request      = System.Net.WebRequest.Create(url) as HttpWebRequest;
                string         access_token = "";
                using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) {
                    StreamReader reader = new StreamReader(response.GetResponseStream());
                    string       vals   = reader.ReadToEnd();
                    var          json   = JObject.Parse(vals);
                    if ((json["access_token"]).Type != JTokenType.Null)
                    {
                        access_token = (json["access_token"] ?? "").ToString();
                    }
                }
                var client = new FacebookClient(access_token);

                //  FacebookPostSettingPart getpart = _orchardServices.WorkContext.CurrentSite.As<FacebookPostSettingPart>();
                //  getpart.FacebookAccessToken = access_token;
                object taskresult       = client.Get("/me");
                var    result           = (IDictionary <string, object>)taskresult;
                string facebookUserId   = (string)result["id"];
                string facebookUserName = (string)result["name"];

                FacebookAccountVM fvm = new FacebookAccountVM();
                fvm.UserToken      = access_token;
                fvm.UserIdFacebook = facebookUserId;
                fvm.UserName       = facebookUserName;
                OrchardRegister(fvm);


                JsonObject jsonResponse = client.Get("me/accounts") as JsonObject;

                Uri profilePictureUrl = new Uri(string.Format("https://graph.facebook.com/{0}/picture?type={1}&access_token={2}", facebookUserId, "small", access_token));
                var mediaPath         = HostingEnvironment.IsHosted
                    ? HostingEnvironment.MapPath("~/Media/") ?? ""
                    : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Media");
                WebClient webClient = new WebClient();
                webClient.DownloadFile(profilePictureUrl, mediaPath + _shellSettings.Name + @"\facebook_" + facebookUserId + ".jpg");

                Dictionary <string, string> ElencoPagine = new Dictionary <string, string>();
                foreach (var account in (JsonArray)jsonResponse["data"])
                {
                    string accountName = (string)(((JsonObject)account)["name"]);
                    fvm               = new FacebookAccountVM();
                    fvm.UserToken     = access_token;
                    fvm.PageName      = accountName;
                    fvm.PageToken     = (string)(((JsonObject)account)["access_token"]);
                    fvm.IdPage        = (string)(((JsonObject)account)["id"]);
                    profilePictureUrl = new Uri(string.Format("https://graph.facebook.com/{0}/picture?type={1}&access_token={2}", fvm.IdPage, "small", access_token));
                    webClient         = new WebClient();
                    webClient.DownloadFile(profilePictureUrl, mediaPath + _shellSettings.Name + @"\facebook_" + fvm.IdPage + ".jpg");
                    fvm.UserIdFacebook = fvm.IdPage;
                    fvm.UserName       = accountName;
                    OrchardRegister(fvm);
                }
                return(RedirectToAction("Index", "FacebookAccount", new { area = "Laser.Orchard.Facebook", id = -10 }));
            }
            return(null);
        }
Example #23
0
 public IAuthenticationClient Build(ProviderConfigurationRecord providerConfigurationRecord)
 {
     return(new MicrosoftClient(providerConfigurationRecord.ProviderIdKey, providerConfigurationRecord.ProviderSecret, "wl.basic", "wl.emails"));
 }