Ejemplo n.º 1
0
        /// <summary>
        /// Bereitet die Anfrage für den Offlinezugriff vor
        /// </summary>
        /// <param name="redirectUri">Die Url, die von Google nach der Authorizierung aufgerufen werden soll</param>
        /// <returns>Der Request, der an Google geschickt wird</returns>
        public override AuthorizationCodeRequestUrl CreateAuthorizationCodeRequest(string redirectUri)
        {
            var requestUrl = new GoogleAuthorizationCodeRequestUrl(new Uri(AuthorizationServerUrl));

            requestUrl.AccessType     = "offline";
            requestUrl.ApprovalPrompt = "force";
            requestUrl.ClientId       = ClientSecrets.ClientId;
            requestUrl.Scope          = string.Join(" ", Scopes);
            requestUrl.RedirectUri    = redirectUri;
            return(requestUrl);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates the authorization URL.
        /// </summary>
        /// <param name="redirectUri">The redirect URI.</param>
        /// <returns>The authorization URL.</returns>
        protected virtual string CreateAuthorizationUrl(string redirectUri)
        {
            Uri requestUrl = this.AuthorizationCodeFlow.CreateAuthorizationCodeRequest(
                Config.OAuth2RedirectUri).Build();

            if (IsOffline)
            {
                requestUrl = new GoogleAuthorizationCodeRequestUrl(requestUrl).Build();
            }

            return(requestUrl.AbsoluteUri);
        }
        public void TestConstructor()
        {
            var request = new GoogleAuthorizationCodeRequestUrl(AuthorizationCodeUrl);

            Assert.Equal(AuthorizationCodeUrl, request.AuthorizationServerUrl);
            Assert.Null(request.ClientId);
            Assert.Null(request.RedirectUri);
            Assert.Equal("code", request.ResponseType);
            Assert.Null(request.Scope);
            Assert.Null(request.State);
            Assert.Equal("offline", request.AccessType);
            Assert.Null(request.ApprovalPrompt);
            Assert.Null(request.LoginHint);
        }
Ejemplo n.º 4
0
        public void TestConstructor()
        {
            var request = new GoogleAuthorizationCodeRequestUrl(AuthorizationCodeUrl);

            Assert.Equal(AuthorizationCodeUrl, request.AuthorizationServerUrl);
            Assert.Null(request.ClientId);
            Assert.Null(request.RedirectUri);
            Assert.Equal("code", request.ResponseType);
            Assert.Null(request.Scope);
            Assert.Null(request.State);
            Assert.Equal("offline", request.AccessType);
#pragma warning disable CS0618 // Type or member is obsolete
            Assert.Null(request.ApprovalPrompt);
#pragma warning restore CS0618 // Type or member is obsolete
            Assert.Null(request.Prompt);
            Assert.Null(request.LoginHint);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// POST: api/Messages
        /// Receive a message from a user and reply to it
        /// </summary>
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            /*if (activity.Type == ActivityTypes.Message)
             * {
             *  await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
             * }
             * else
             * {
             *  HandleSystemMessage(activity);
             * }
             * var response = Request.CreateResponse(HttpStatusCode.OK);
             * return response;*/
            if (activity.Type == ActivityTypes.Message)

            {
                if (activity.Text == "login")

                {
                    ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));



                    Activity replyToConversation = activity.CreateReply();

                    replyToConversation.Recipient = activity.From;

                    replyToConversation.Type = "message";



                    replyToConversation.Attachments = new List <Attachment>();

                    List <CardAction> cardButtons         = new List <CardAction>();
                    GoogleAuthorizationCodeRequestUrl url = new GoogleAuthorizationCodeRequestUrl(new Uri("https://accounts.google.com/o/oauth2/v2/auth"));
                    url.ClientId    = "208591536551-cs18qgtasrdjha3vb7b22j09phblif5v.apps.googleusercontent.com";
                    url.AccessType  = "offline";
                    url.Scope       = CalendarService.Scope.CalendarReadonly;
                    url.RedirectUri = "http://*****:*****@gmail.com", CancellationToken.None, null, new LocalServerCodeReceiver());
                    }
                    var service = new CalendarService(new BaseClientService.Initializer()
                    {
                        HttpClientInitializer = credential,
                        ApplicationName       = "BotApp"
                    });
                    EventsResource.ListRequest request = service.Events.List("primary");
                    Events events = request.Execute();
                }
                else
                {
                    ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));

                    Activity reply = activity.CreateReply("# Bot Help\n\nlogin -- Login to Office 365\n\nget mail -- Get your e-mail from Office 365");

                    await connector.Conversations.ReplyToActivityAsync(reply);
                }
            }

            else

            {
                HandleSystemMessage(activity);
            }



            var response = Request.CreateResponse(HttpStatusCode.OK);

            return(response);
        }