Comments (6)
@seca23 that is extremely helpful, thank you!
from botframework-directlinejs.
I know this is an old thread, but here is a C# version for obtaining a token:
protected string file_get_contents(string url)
{
var contents = "";
if (url.ToLower().IndexOf("https:", StringComparison.Ordinal) > -1)
{
var wc = new System.Net.WebClient();
var directlineSecret = ConfigurationManager.AppSettings["DirectlineSecret"].ToString();
wc.Headers = new WebHeaderCollection {{"Authorization", string.Format("BotConnector {0}", directlineSecret) }};
var response = wc.DownloadData(url);
contents = System.Text.Encoding.ASCII.GetString(response);
}
else
{
var sr = new System.IO.StreamReader(url);
contents = sr.ReadToEnd();
sr.Close();
}
return contents;
}
from botframework-directlinejs.
from botframework-directlinejs.
@billba so Microsoft Example is to put secret inside JavaScript file. But you are telling that it should be used only by server backend which will obtain token and pass it to the JavaScript? What is best practice for public web site with Microsoft Bot ?
from botframework-directlinejs.
There are many scenarios where publishing the secret is no problem. All it really means is that anyone can put your bot on their web site. If what you want is for people to use your bot, that might be okay.
If you don't wish to publish your secret, then best practice is to have your website get it, and inject the token directly into the javascript of the web page it publishes. In this code, botchattest
gets a token in the act of creating the web page containing WebChat.
Closing this issue.
from botframework-directlinejs.
@Hrcinjo
You can generate a token in WordPress with PHP like this:
<?php
/* This code is used to generate a token, that is only valid for a single conversation,
* this prevents other developers from including your bot in their website. By
* restricting their access to your bot secret.
*/
$botSecret = 'Your bot secret';
$response = wp_remote_get( 'https://webchat.botframework.com/api/tokens', array( 'headers' => 'Authorization: BotConnector ' . $botSecret ) );
if( is_array($response) ) {
$header = $response['headers']; // array of http header lines
$token = $response['body']; // use the content
}
?>
If you want to do this in a non WordPress site, you can do it like this:
$botSecret = 'Your bot secret';
$options = array('http' => array(
'method' => 'GET',
'header' => 'Authorization: BotConnector ' . $botSecret
));
$context = stream_context_create($options);
$token = file_get_contents('https://webchat.botframework.com/api/tokens', false, $context);
?>
from botframework-directlinejs.
Related Issues (20)
- Whether to support the wechat mini program HOT 1
- Hello, how to send by directline, the ID of my QA environment? HOT 2
- Please create an Offline DirectLine Emulation that is supported by Microsoft.
- DirectlineStreaming doesn't work with Node.js HOT 7
- Error with Power Virtual Agent: Site Missing code 403 from https://directline.botframework.com/v3/directline/conversations HOT 1
- DirectlineStreaming - Retrying connection after end HOT 5
- Update webpack target for modern Node HOT 1
- DirectLineStreaming: unhandled rejection from connectWithRetryAsync in activity$
- While sending attachment, activity API was not triggering using botframework-directlinejs HOT 2
- Post an activity with attachment occurs 502 HOT 3
- Attachements limitation and expiry on DirectLine HOT 1
- DirectlineStreaming: Errors on disconnect are written to console HOT 2
- networkInformation: Switching network type, then switching back again, results in RECONNECT_REJECTED HOT 1
- Angular 15 with botframework-directlinejs does not compile due to typings errors. HOT 3
- [Error] NetworkInformation, missing Interface. HOT 4
- Mocking the WebSocket URL for end to end testing using playwright/cypress. HOT 2
- Application crashes when refresh token returns an error HOT 2
- Receiving repeated user input as part of response from direct line bot HOT 1
- Multiple Continuous API Requests Issue HOT 3
- API issue HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from botframework-directlinejs.