在微软 bot 框架上使用 webchat 获取 403 Forbidden

Getting 403 Forbidden with webchat on microsoft bot framework

我在这里遵循了选项 #4: https://github.com/Microsoft/BotFramework-WebChat/blob/speech/samples/speech/index.html 并使用了我的 COGNITIVE_SPEECH_API_KEY。但是即使代码似乎按照 docs.

的预期在请求中传递了 Authorization header,我仍然收到 403 禁止

这是我从 Chrome 开发人员工具中捕获的请求和响应:

Request

URL: wss://speech.platform.bing.com/speech/recognition/interactive/cognitiveservices/v1?format=simple&language=en-US&Authorization=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6Imh0dHBzOi8vd2VzdHVzLmFwaS5jb2duaXRpdmUubWljcm9zb2Z0LmNvbS9jdXN0b21zcGVlY2giLCJzdWJzY3JpcHRpb24taWQiOiJhN2ZmNzJmZmZhNDA0YmQ2ODU5MjNjYzBmMmU2ODdhZiIsInByb2R1Y3QtaWQiOiJDUklTLlMwIiwiY29nbml0aXZlLXNlcnZpY2VzLWVuZHBvaW50IjoiaHR0cHM6Ly9hcGkuY29nbml0aXZlLm1pY3Jvc29mdC5jb20vaW50ZXJuYWwvdjEuMC8iLCJhenVyZS1yZXNvdXJjZS1pZCI6Ii9zdWJzY3JpcHRpb25zLzkwOThmZTJjLTk5NjItNDMxNS1iZGQxLWFiNTEzMDA0YjBiNC9yZXNvdXJjZUdyb3Vwcy9EZW52ZXJJZ25pdGlvbi9wcm92aWRlcnMvTWljcm9zb2Z0LkNvZ25pdGl2ZVNlcnZpY2VzL2FjY291bnRzL2lnbml0aW9udGVzdGJvdHNwZWVjaCIsImlzcyI6InVybjptcy5jb2duaXRpdmVzZXJ2aWNlcyIsImF1ZCI6InVybjptcy5jdXN0b21zcGVlY2giLCJleHAiOjE0OTU5ODQ4MzF9.kK1bx_kWllytyDvdqSZlb0_HUwaLX-V6OGJGeJ3fI2k&X-ConnectionId=9B408F2612DE4902A2D37EEACC8FB350

Request Method:GET

Status Code:403 Forbidden

Response Headers

Content-Length:0

Date:Sun, 28 May 2017 15:10:31 GMT

Server:Microsoft-IIS/10.0

X-MSEdge-Ref:Ref A: B1DBE1CCBEEA44A6B0213CB1CF8B8CA6 Ref B: DEN02EDGE0314 Ref C: Sun May 28 08:10:31 2017 PST

Request Headers

Accept-Encoding:gzip, deflate, sdch, br

Accept-Language:en-US,en;q=0.8

Cache-Control:no-cache

Connection:Upgrade

Cookie:_IFAV=A=422B5EB35D6227B47A899A55FFFFFFFF&COUNT=0&SEEALL=2&VRSN=2; SRCHD=AF=NOFORM; SRCHUSR=DOB=20160521; MSFPC=ID=a0c448564466a044a98c006abcccbaf0&CS=3&LV=201608&V=1; _RwBf=s=10&o=0&A=422B5EB35D6227B47A899A55FFFFFFFF; MUID=2350DC04198E61F62654DA0E1D8E6287; _U=1Y4QobYDPj3fzheUKiZ5uMdlvmGHvPLxng61hD9XLEWEhcPAfnXyj4UgFgyOMlw6jiTZJaP9wfqB4D6B2UYIV7_jbXnm5WTRM0ycCG-1F5YbfcPhiTR4SdgSkfPadkYRd; WLID=qgIk0rgVNCI8HNV2Z4g8xFSkWTapYBjrDBYC04Zh/6JNzAhx2KtSiq+zTmKuyODQY3+IA3XDFhKybijk6ArfNlzdJ448JV1JBNO/mmbbcGQ=; ANON=A=422B5EB35D6227B47A899A55FFFFFFFF&E=13d0&W=1; NAP=V=1.9&E=1376&C=GKfvIsAF38G7JJpiBtQFE1j-85HTsObRYo50Mrr-fkR1HpimpRoSRA&W=1; ULC=T=CCC1|4:3; SRCHHPGUSR=CW=1329&CH=716&DPR=2&UTC=-360

Host:speech.platform.bing.com

Origin:https://ignitiontestbotweb.azurewebsites.net

Pragma:no-cache

Sec-WebSocket-Extensions:permessage-deflate; client_max_window_bits

Sec-WebSocket-Key:+oV+WOyiaN3VFOIYmX1t3w==

Sec-WebSocket-Version:13

Upgrade:websocket

User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36


bing语音API似乎是随机接听电话。十分之一的连接尝试通过 101 Switch Protocols 状态代码完成。对于相同的请求。

成功

Request URL:wss://speech.platform.bing.com/speech/recognition/interactive/cognitiveservices/v1?format=detailed&language=en-US&Ocp-Apim-Subscription-Key=0825dc93563445aca227aa125404c299&X-ConnectionId=2679C505D3D742A5809D1F08A1934E08

Request Method:GET

Status Code:101 Switching Protocols


失败(对于相同的请求)

Request URL: wss://speech.platform.bing.com/speech/recognition/interactive/cognitiveservices/v1?format=simple&language=en-US&Ocp-Apim-Subscription-Key=0825dc93563445aca227aa125404c299&X-ConnectionId=2A47A79398D941ACB3F67A9580B908E3

Request Method:GET

Status Code:403 Forbidden

如评论中所述,您尝试使用的密钥对应于 Custom Speech Service API, and the sample you are trying to run needs a Bing Speech API 密钥。 Bing Speech 是提供 Speech to Text 功能的服务。