public void EnsureConstructs_a_UtilApi_instance()
        {
            var agentApiFactory = new AgentApiFactory("https://agent");
            var result          = agentApiFactory.CreateUtilApi(_userSessionManager);

            Assert.NotNull(result);
        }
        private void StartupSymphonyBot()
        {
            // Symphony start up boilerplate start

            SymphonyOSS.RestApiClient.Generated.OpenApi.PodApi.Client.Configuration.Default =
                new SymphonyOSS.RestApiClient.Generated.OpenApi.PodApi.Client.Configuration(timeout: config_.TimeoutInMillis);
            SymphonyOSS.RestApiClient.Generated.OpenApi.AuthenticatorApi.Client.Configuration.Default =
                new SymphonyOSS.RestApiClient.Generated.OpenApi.AuthenticatorApi.Client.Configuration(timeout: config_.TimeoutInMillis);
            SymphonyOSS.RestApiClient.Generated.OpenApi.AgentApi.Client.Configuration.Default =
                new SymphonyOSS.RestApiClient.Generated.OpenApi.AgentApi.Client.Configuration(timeout: config_.TimeoutInMillis);

            var certificate = new X509Certificate2(
                config_.BotCertificateFilePath,
                config_.BotCertificatePassword);
            var sessionManager = new UserSessionManager(
                string.Format("{0}/sessionauth/", config_.BaseApiUrl),
                string.Format("{0}/keyauth/", config_.BaseApiUrl),
                certificate);
            var agentApiFactory = new AgentApiFactory(
                string.Format("{0}/agent", config_.BaseApiUrl));
            var podApiBaseUrl = string.Format("{0}/pod", config_.BasePodUrl);
            var podApiFactory = new PodApiFactory(podApiBaseUrl);

            // Symphony start up boilerplate end

            // create a data feed API to listen for chat messages
            datafeedApi_            = agentApiFactory.CreateDatafeedApi(sessionManager);
            datafeedApi_.OnMessage += OnMessageReceived;

            // create streams API to initiate chats
            streamsApi_ = podApiFactory.CreateStreamsApi(sessionManager);

            // create messages API to send messages
            messagesApi_ = agentApiFactory.CreateMessagesApi(sessionManager);

            // create users API to resolve users by e-mail or id
            usersApi_ = podApiFactory.CreateUsersApi(sessionManager);

            // start listening for messages from out bot
            // NB: Listen() is blocking, so run on a dedicated thread
            Task.Factory.StartNew(datafeedApi_.Listen, TaskCreationOptions.LongRunning);
        }
示例#3
0
        static void Main(string[] args)
        {
            ILoggerFactory loggerFactory = new LoggerFactory().AddConsole(LogLevel.Debug);

            ApiLogging.LoggerFactory = loggerFactory;

            // get the settings file that contains certificate and other information
            var settingsContents = File.ReadAllText("s:\\settings\\RestApiSettings.json");
            var settings         = JsonConvert.DeserializeObject <Settings>(settingsContents);

            var certBytes = Convert.FromBase64String(settings.certificate);
            X509Certificate2 certificate = new X509Certificate2(certBytes, settings.certificatePassword);

            var sessionManager  = new UserSessionManager(settings.sessionauthUrl, settings.keyauthUrl, certificate);
            var agentApiFactory = new AgentApiFactory(settings.agentUrl);


            var messagesApi = agentApiFactory.CreateMessagesApi(sessionManager);

            var messageSubmit = new MessageSubmit("4O97z9WiybT5llo1u43bWX___qOAkG-edA", "<messageML>hello</messageML>");

            messagesApi.PostMessage(messageSubmit);

            var datafeedApi = agentApiFactory.CreateDatafeedApi(sessionManager);

            datafeedApi.OnMessage += (sender, e) =>
            {
                var message = e.Message;
                Console.WriteLine(message.Body);
            };

            try
            {
                datafeedApi.Listen();
            } catch (Exception e)
            {
                Console.WriteLine(e);
            }
            Console.WriteLine("Hello World!");
        }