1

Google Apps Scripts で Dice Rolling ボットを作成し、マニフェストとしてデプロイしました。機能の下で、「ボットはルームで機能する」と「ボットはダイレクトメッセージで機能する」の両方をチェックしました。

ボットに DM で応答させることができます。ルームに追加すると、onAddToSpace() メッセージが表示されます。ただし、応答が得られず、代わりにこのメッセージが表示されます。

応答なし: 自分だけに表示されます。

ここに画像の説明を入力

ボットがルームで機能するようにするには、何をする必要がありますか?

これが私のコードです:

/**
* Responds to a MESSAGE event in Hangouts Chat.
*
* @param {Object} event the event object from Hangouts Chat
*/
function onMessage(event) {
  var name = "";

  if (event.space.type == "DM") {
    name = "You";
  } else {
    name = event.sender.displayName;
  }
  var roll = diceRoll(event.message.text)
  if (roll[1] == ''){
    if (event.space.type == 'DM'){
      var message = name + " rolled  \"" + event.message.text + "\" and got " + roll[0];
    }
    else {
      var message = name + " rolls  \"" + event.message.text + "\" and gets " + roll[0];
    }
  }
  else {
    if (event.space.type == 'DM') {
      var message = name + " rolled  \"" + event.message.text + "\" and got " + roll[0] + ". [" + roll[1] + "]";
    }
    else{
      var message = name + " rolls  \"" + event.message.text + "\" and gets " + roll[0] + ". [" + roll[1] + "]";
    }
  }

  return { "text": message };
}

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}

function add(a, b) {
  return a + b;
}

function diceRoll(message){
  var fixedMessage = message.toLowerCase()
  fixedMessage = fixedMessage.split('d')
  var numberOfDice = parseInt(fixedMessage[0])
  var sizeOfDice = parseInt(fixedMessage[1])
  if (numberOfDice == 1){
    return [Math.floor(getRandomInt(1, sizeOfDice)), '']
  }
  else {
    var diceRolls = []
    for(i=0; i<numberOfDice; i++){
      diceRolls.push(Math.floor(getRandomInt(1, sizeOfDice)))
    }
    var sum = Math.floor(diceRolls.reduce(add, 0))
    return [sum, diceRolls]
  }
}

function test(){
  Logger.log(diceRoll('2d20'))
  Logger.log(diceRoll('1d20'))
}

/**
* Responds to an ADDED_TO_SPACE event in Hangouts Chat.
*
* @param {Object} event the event object from Hangouts Chat
*/
function onAddToSpace(event) {
  Logger.log(event)
  var message = "";

  if (event.space.type == "DM") {
    message = "Thank you for adding DiceRoll to a DM, " + event.user.displayName + "!";
  } else {
    message = "Thank you for adding DiceRoll to " + event.space.displayName;
  }

  return { "text": message };
}

/**
* Responds to a REMOVED_FROM_SPACE event in Hangouts Chat.
*
* @param {Object} event the event object from Hangouts Chat
*/
function onRemoveFromSpace(event) {
  Logger.log(event)
  console.info("Bot removed from ", event.space.name);
}
4

1 に答える 1