不知道我的问题出在哪里。我会在文档页面中使用 Try It Out 选项,但似乎没有任何方法可以提供令牌/秘密。
尝试从 Jupyter 笔记本向我的机器人发送消息时,我不断收到错误 500。这是我的代码:
class DirectLineConversation:
"""A conversation with a bot via the Direct Line API."""
def __init__(self, direct_line_secret):
self._direct_line_secret = direct_line_secret
self._base_url = 'https://directline.botframework.com/api'
self._initiate_conversation()
def _initiate_conversation(self):
self._init_headers()
requests.post("https://directline.botframework.com/api/tokens/conversation", headers=self._headers)
r = requests.post("https://directline.botframework.com/api/conversations", headers=self._headers)
json_ = r.json()
self.conversationId = json_['conversationId']
self.token = json_['token']
def _init_headers(self):
headers = {'Content-Type': 'application/json'}
headers.update(self._get_authorization_pair())
self._headers = headers
def _get_authorization_pair(self):
value = ' '.join(['BotConnector', self._direct_line_secret])
return {'Authorization': value}
def send_message(self, text):
url = '/'.join([self._base_url, 'conversations', self.conversationId, 'messages'])
print(url)
return requests.post(url, headers=self._headers, json={'conversationId': self.conversationId,
'text': text})
convo = DirectLineConversation(_DIRECT_LINE_SECRET)
response = convo.send_message("Hello")
print(response.status_code)
print(response.json())
根据文档,架构中的所有内容都是可选的,所以我假设传递 json={'text': text} 可以正常工作,但是我也尝试过所有其他值为 null 以及会话 ID 的方法,如我在其他几个 SO 答案。
这是输出:
https://directline.botframework.com/api/conversations/3BpMMKssV6P/messages 500 {'消息':'发送消息失败'}