public IConfigurable PrepareSubscription(MailboxSession mailbox, ConnectSubscriptionProxy proxy) { ArgumentValidator.ThrowIfNull("proxy", proxy); NewFacebookSubscription.Tracer.TraceFunction((long)this.GetHashCode(), "Entering NewFacebookSubscription.PrepareSubscription. Mailbox {0}.", new object[] { mailbox.Identity }); this.InitializeConfiguration(proxy.AppAuthorizationCode, proxy.RedirectUri); string text; string userId; if (NewFacebookSubscription.IsTestHook(proxy.AppAuthorizationCode)) { text = "***TEST_ACCESS_TOKEN***"; userId = "***TEST_USER_ID***"; } else { text = new FacebookAuthenticator(this.config).ExchangeAppAuthorizationCodeForAccessToken(proxy.AppAuthorizationCode); userId = NewFacebookSubscription.GetUserId(text); if (!CachedPeopleConnectApplicationConfig.Instance.ReadFacebook().SkipContactUpload) { NewFacebookSubscription.UploadContacts(mailbox, text); } else { NewFacebookSubscription.Tracer.TraceWarning <string>((long)this.GetHashCode(), "Skipping contact upload for new subscription in Mailbox {0}.", mailbox.Identity.ToString()); } } proxy.Subscription.SubscriptionType = AggregationSubscriptionType.Facebook; proxy.Subscription.SubscriptionProtocolName = ConnectSubscription.FacebookProtocolName; proxy.Subscription.SubscriptionProtocolVersion = ConnectSubscription.FacebookProtocolVersion; proxy.Subscription.SubscriptionEvents = SubscriptionEvents.WorkItemCompleted; proxy.SendAsCheckNeeded = false; proxy.ProviderGuid = ConnectSubscription.FacebookProviderGuid; proxy.MessageClass = "IPM.Aggregation.Facebook"; proxy.AssignAccessToken(text); proxy.AppId = this.config.AppId; proxy.UserId = userId; NewFacebookSubscription.Tracer.TraceFunction((long)this.GetHashCode(), "Leaving NewFacebookSubscription.PrepareSubscription. Mailbox {0}.", new object[] { mailbox.Identity }); return(proxy); }
public void InitializeFolderAndNotifyApps(MailboxSession mailbox, ConnectSubscriptionProxy subscription) { if (mailbox == null) { throw new ArgumentNullException("mailbox"); } if (subscription == null) { throw new ArgumentNullException("subscription"); } if (NewFacebookSubscription.IsTestHook(subscription.AppAuthorizationCode)) { return; } new OscFolderCreator(mailbox).Create("Facebook", subscription.UserId); new OscSyncLockCreator(mailbox).Create("Facebook", subscription.UserId); new PeopleConnectNotifier(mailbox).NotifyConnected(WellKnownNetworkNames.Facebook); }