2017-04-25 154 views
1

我正在嘗試構建一個與REST API集成的bot。更具體地說,機器人應該根據用戶提供的憑據登錄到API。根據用戶提出的某些問題,機器人應該對API執行某些操作並報告結果。就像,'嘿,先生。機器人,我想知道我最新的銷售數據「或」提交我的傑出活動「。該API使用表單身份驗證,因此在登錄後,bot需要將cookie發送到API,否則應答爲401(來自API)。使用MS Bot Framework與REST API集成

是這樣的可能嗎?

[更新]

因爲它是不清楚的,我問什麼(下投票),我會延長我的問題。我想知道該機器人是否可以將API所需的cookie傳遞給它與之通信的客戶端。否則,每次向API發出請求時,API都會將該請求視爲未經授權的請求。

謝謝!

+0

-1 ......不清楚我在問什麼......真的? 有時我想知道爲什麼我甚至打擾尋求幫助 –

+1

嗯,很難判斷它是否可以使用cookie ......也許在WebChat頻道中,但不確定其他頻道(例如slack/skype)。通常,機器人中的身份驗證通過OAuth進行處理,您將獲得訪問令牌並將驗證頭與不記名令牌一起發送。你有沒有嘗試過任何東西,它不起作用,或者你還沒有走過那條路? –

+1

嗨,非常感謝您的迴應!我還沒有走這條路。我首先需要將我的API更改爲使用OAuth而不是表單身份驗證。但你基本上已經回答了我的問題。非常感謝! –

回答

2

我不完全確定這是否會使用cookie。也許在WebChat頻道中,由於頻道的性質,可能工作得很好。

我見過的工具使用機器人的一個常見模式是通過API通過OAuth進行通信。實現這一點的一個好方法是:你在機器人中發送給用戶一個登錄鏈接,然後回覆將回調到你的API,你將基本上恢復與機器人的身份驗證並將訪問令牌存儲在機器人狀態;所以你可以在每次通話中重複使用它。

由於您使用的是C#,我建議您檢查AuthBot(是通過Microsoft Bot Framework構建的機器人上的Azure Active Directory身份驗證的.Net庫)。

此外,您可以檢查AzureBot以查看Auth庫的使用方式。