/// <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); }
/// <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); }
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); }
/// <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); }