我已经创建了一个聊天机器人,用于与我们的gsuite进行Google聊天。当我输入@DadJokes时,它会从API返回随机dadjoke
问题在于,只有我可以看到返回的笑话,而在文档中找不到有关此信息。
有人可以引导我到正确的路径吗?
谢谢
function getDadJoke() {
var response = UrlFetchApp.fetch('https://icanhazdadjoke.com/', {
method: 'get',
headers: { 'Accept': 'text/plain' },
contentType: 'plain/text',
});
return response.getContentText();
}
/**
* Responds to a MESSAGE event in Hangouts Chat.
*
* @param {Object} event the event object from Hangouts Chat
*/
function onMessage(event) {
console.log(getDadJoke());
return { "text": getDadJoke() };
}
/**
* Responds to an ADDED_TO_SPACE event in Hangouts Chat.
*
* @param {Object} event the event object from Hangouts Chat
*/
function onAddToSpace(event) {
return { "text": getDadJoke() };
}
/**
* Responds to a REMOVED_FROM_SPACE event in Hangouts Chat.
*
* @param {Object} event the event object from Hangouts Chat
*/
function onRemoveFromSpace(event) {
console.info("Bot removed from ",(event.space.name ? event.space.name : "this chat"));
}
更新
我使用异步消息使它正常工作,但是现在其他人比我自己的消息(在我键入@DadJokes的消息早)收到了这个笑话。因此,这意味着我输入@DadJokes,聊天参与者会收到来自机器人的笑话,然后他们会收到我的消息@DadJokes
function getDadJoke() {
var response = UrlFetchApp.fetch('https://icanhazdadjoke.com/', {
method: 'get',
headers: { 'Accept': 'text/plain' },
contentType: 'plain/text',
});
return response.getContentText();
}
function sendDadJoke(spaceId) {
var service = OAuth2.createService('chat')
.setTokenUrl('https://accounts.google.com/o/oauth2/token')
.setPrivateKey(SERVICE_ACCOUNT_PRIVATE_KEY)
.setClientId(SERVICE_ACCOUNT_EMAIL)
.setPropertyStore(PropertiesService.getUserProperties())
.setScope(SCOPE);
if (!service.hasAccess()) {
Logger.log('Authentication error: %s', service.getLastError());
return;
}
var url = 'https://chat.googleapis.com/v1/' + spaceId + '/messages';
UrlFetchApp.fetch(url, {
method: 'post',
headers: { 'Authorization': 'Bearer ' + service.getAccessToken() },
contentType: 'application/json',
payload: JSON.stringify({ "text": getDadJoke() }),
});
}
/**
* Responds to a MESSAGE event in Hangouts Chat.
*
* @param {Object} event the event object from Hangouts Chat
*/
function onMessage(event) {
sendDadJoke(event.space.name);
return {"message": "Okay here it comes!"};
}
/**
* Responds to an ADDED_TO_SPACE event in Hangouts Chat.
*
* @param {Object} event the event object from Hangouts Chat
*/
function onAddToSpace(event) {
sendDadJoke(event.space.name);
return {"message": "Okay here it comes!"};
}
/**
* Responds to a REMOVED_FROM_SPACE event in Hangouts Chat.
*
* @param {Object} event the event object from Hangouts Chat
*/
function onRemoveFromSpace(event) {
console.info("Bot removed from ",(event.space.name ? event.space.name : "this chat"));
}