1

不知道我的问题出在哪里。我会在文档页面中使用 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 {'消息':'发送消息失败'}

4

0 回答 0