Beispiel #1
0
        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);
        }
Beispiel #2
0
 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);
 }