I have a requirement to display a user's calendar entries for the next month on a web application dashboard view.
I have successfully used Exchange Web Services to achieve this following this documentation:
https://msdn.microsoft.com/en-us/library/office/dn495614(v=exchg.150).aspx
The final requirements for this task are that if the user clicks on the entry (in their browser):
Outlook should open on their machine and take them straight to the actual calendar entry.
I've inspected the appointment objects and I can see I have access to the calendar Id and I can easily pass this to the server however from here I'm a little confused how I can launch the application that is on their machine and tell it to open that entry Id.
Would this be another EWS call or Office.Interop.Outlook, is it even possible at all?
If this makes it anymore difficult, this is a .Net Core 2.0 web application.
Outlook still accepts command line switches, one of which let's you open an Outlook item, /select.
Now you just need to create a URL to launch Outlook with your command line arguments.
For IE, this is not too difficult assuming your web application is trusted:
javascript:(new ActiveXObject('Shell.Application')).ShellExecute('outlook.exe','/select outlook:<entryid>');
For Chrome, you could send a cmd file or create a helper exe that is downloaded, but the user would have to manually pick open to launch it.
Active X will not be working for all the modern browsers like chrome, IEEdge, firefox and safari. Alternatively you can create below registry entry and anchor link/button to open the outlook calendar
below is the markup
<button id="outlookCalendarBtn" onclick="window.open('outlookwebcal:')">
Open Outlook Calendar
</button>
Create below registry entry
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\outlookwebcal]
#="URL:Outlook Add Internet Calendar"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\outlookwebcal\shell]
#="open"
[HKEY_CLASSES_ROOT\outlookwebcal\shell\open]
[HKEY_CLASSES_ROOT\outlookwebcal\shell\open\command]
#="\"C:\\Program Files\\Microsoft Office\\root\\office16\\Outlook.exe\" /select outlook:calendar"
Related
So just like uTorrent gets magnet links and opens them,
How can I setup my WinForm app to get a URL from Default Browser (in this case my default is Chrome) and open that URL in EO.WebBrowser within my app?
I don't have any code for this yet, as I don't know where to start.
Is this something that would be assigned as a Registry Key?
I know there are Registry keys for uTorrent to handle Magnet links in HKEY_CLASSES_ROOT\Magnet\shell\open\command.
What I have is WhatsApp Web open in EO.WebBrowser, and when I click on a URL starting with https://web.whatsapp.com or https://api.whatsapp.com it would open that link. The thing is the link should be changed to web.whatsapp.com, instead of api.whatsapp.com
I am trying to create a chatbot which is having multiple waterfall dialog classes using C# and BOT SDK V4. I have created a HTML page and placed the DirectLine channel Secret Key Iframe data into it and published it to Azure successfully and opened it in the browser. The browser opens with a in-built welcome message something like: Hi bot name type Hi to continue.
If i have Choice options done through prompt options to be displayed as buttons but these are not displayed through direct line channel but works very good in Web Chat Channel?
Attached image shows the issue:
a "WebChatbotHtml_optionbtndisplayed.jpg"
b. "DirectLinechannelHtml_optionbtnnotdisplayed.jpg"
Now, in the main dialog class i have implemented the Login mechanism using the Oauth Prompt in th html page that was created above i see the login link getting displayed using which i have successfully logged in this will navigate to another waterfall dialog having prompt options with some custom choice buttons, whee if i click on a choice button the next step will be executed and respective action will be triggered.
The issue i have is normally the options are displayed for me to access but in the html that i created the all other things like login link and navigation is happening but the choice buttons are not displayed its like they are getting hidden.
or Sometimes the Choice Option buttons are not displayed at all in the Direct Channel Web chat bot
The query is how to fix the issue?
To make my query to be understood in a better way please find below set of things:
1. WaterfalldiaglogClass1:
STEP 1: Has login option/link displayed through Oauth Prompt.
STEP 2: Gets token validates it and displays login successful message and then navigates to second waterfalldialogClass
2. WaterFallddialogClass2:
STEP 1: Custom choices are displayed through Prompt options lets say 1,2,3,4
STEP 2: Capture the choice getting clicked and perform respective action
I created a HTML page where the I frame code i copied with secret code of Direct Line Channel
Published it to azure successfully with no errors or warnings
Opened the html page in a browser the chat bot opens successfully with a welcome default message like: HI i am bot,enter Hi to continue
User sends hi and logins using the login link available displayed in dialog class 1 and login successful message is displayed
Navigated successfully to second dialog successfully as i can see the prompt message given as part of prompt option and custom choices in the code
Current Issue: The option buttons 1,2,3,4 are not getting displayed it is getting hidden somehow
Need help in resolving the issue Please provide detailed step by step guide in resolving it as i am new to BOT and coding .
language: C#
Bot Framework: V4
I have tried increasing height width and other % values in the HTML page and republished it but not successful. The same thing works in web chat channel i.e. if i keep secret code inside the HTML page of webchat channel without any issues.
Issue Image attached for reference.
Expected Result: Data or choices should be shown as it is working in Webchat channel
Actual Result: Not working the choice options are not visible to choose
There are two versions of Embedded Web Chat at the moment: Gemini and Scorpio. Embedded Web Chat is currently in the process of slowly transitioning all clients from Scorpio to Gemini. It appears your embedded Web Chat is still using Scorpio which unfortunately does not support the OAuth prompt. In the near future, you will be able to manually request your client to be switched to Gemini.
In the meantime, you can add either add Web Chat v4 to your site using a CDN or wait for your client to be migrated to Gemini.
For more details regarding Embedded Web Chat, take a look at the documentation.
Hope this is somewhat helpful.
I have a website in PHP Laravel 5.2.
I want to create a desktop application (something like drop-box application for windows) using C#, in which there will be a button "Open web", clicking which the logged-in user (in desktop app) should get logged in to the web-site without asking any credentials.
In web-site, I am using api_token based authentication.
There is a possible way I can make an end-point in web-site to check the token an make user logged in if correct, but I think it is less secure.
I've checked request-response log in fiddler for drop-box "Open dropbox.com" button, it does not sets any token in request.
The question is how can I achieve it?
One way would do the following:
Request a use-once (a nonce) unique code from the server in your desktop application, that refers to the user you want to log in as
Open a webbrowser process with an address that contains this use-once code, something like this:
http://www.your.server.com/the/page/you/want?auth=29874298798724982734
The way Dropbox does this, is to create a temporary html file on disk which contains some javascript code that posts a "form" to a secure page on their server
https://www.dropbox.com/desktop_login
form fields:
buildno=Dropbox-win-7.4.30
u=home
c=en_US
i=<some number>
n data-nonce-c=<some large hex string>
Then it spawns a webbrowser process to open this file.
To see this file, use the globe link in your Dropbox app and then hit Esc as soon as the initial web page loads and grab the url which should look like this:
file://C:/users/USERNAME/appdata/local/temp/RANDOM.html
Then open this file to inspect it.
We have an application that runs as service on windows. The service periodically checks for active Internet Explorer instances using SHDocVw.ShellWindows(). With this, we are able to capture the URL in each of the IE instances.
My Question:
Is it possible to find out how the webpage in each of these IE instances were launched. For example -
Did user type in url in IE to load the webpage?
Did the user select the link from another IE tab to launch ?
Did the user launch IE instance from another desktop application like outlook etc
Thank you.
The closest thing I could find to your specific requirement was this also check out the part 2 of the same blog where some edge cases have been discussed.
The part 1 of the blog talks about a registry key named TypedURLs (path: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs) which can be found in the registry editor, the rules of updation of this key are like this:
If a link is copied and pasted from a web page to the URL address bar and the user hits enter, this will also populate the key, as this is akin to physically typing in the entire address. If an invalid address of a webpage or resource that cannot be located is entered, the key will not be populated until either the connection or the request is completed (whether it succeeded or failed). If IE’s Stop function is selected before the connection is finished or the resource is located, the key will not be populated.
It is important to note that websites visited with the browser via hyperlinks, redirects, the IE Favorites menu or the user’s home page will not populate this key. Also, when a user selects to delete their browsing history using IE’s built-in function, this key is cleared.
Hope it helps!
I'm writing a desktop app in C# that has Facebook integration and I'm trying to figure out how to do authentication/login. I have thought of two different approaches:
1. Popup default browser
The user probably is logged into Facebook on their default browser.
Code: System.Diagnostics.Process.Start("http://www.facebook.com/...");
Issues/Questions: How do I control the window location and size (e.g. not show address bar when it starts)? Can I destroy the process after login is complete or even close the window (won't most browsers prompt for window closing if done from javascript?)?
2. Popup specific browser
If I lookup the default browser, I can pass command-line flags to the browser. "..\chrome.exe" --app=http://www.facebook.com/...
Questions: How do I set the window size/location? How do I close the process after login-complete (assuming I know when the login is complete)?
Is there a better way to do this?
very usefull resource in this situation is http://facebooksdk.net/.
Earlier, there was a sample project for desktop application on facebooksdk.net, but it was removed. You can see it here https://github.com/MarkAureliy/facebook-winforms-sample-master
This project is straight for your needs