环聊聊天机器人“呼叫者没有权限”,PERMISSION_DENIED

时间:2020-07-17 15:25:23

标签: hangouts-chat hangouts-api

我根据文档中的示例代码,使用JAVA Api创建了一个聊天机器人, Bot使用服务帐户。

机器人在一个房间中可以正常工作,但是当我尝试在新房间中使用它时,我遇到了错误。

将Bot添加到新会议室并尝试发布消息后,我收到了 {“ code”:403,“ errors”:[{“ domain”:“ global”,“ message”:“呼叫者没有许可”,“ reason”:“禁止”}],“ message”:“呼叫者没有权限”,“状态”:“ PERMISSION_DENIED”}

将Bot添加到会议室之后,在发布消息之前是否还需要采取其他步骤?

在此问题上的任何帮助将不胜感激!

使用的代码:

HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); 
JsonFactory jsonFactory = new JacksonFactory(); 
HangoutsChat.Builder builder = new HangoutsChat.Builder(httpTransport, jsonFactory, credentials); 
builder.setApplicationName(bot); 
HangoutsChat service = builder.build();
ListSpacesResponse response = service.spaces().list().execute();
// Look for space Space _space = null; 
while (response.getSpaces() != null && _space == null) {    
  for(Space s : response.getSpaces()) {          
    if(s.getDisplayName().equals(space)) {          
      _space = s;       
    }   
  }     
  if (_space == null && response.getNextPageToken() != null && !response.getNextPageToken().isEmpty()) {        
    String pageToken = response.getNextPageToken();         
    response = service.spaces().list().setPageToken(pageToken).execute();   
  } else {      
    break;  
  } 
}
if(_space != null) {    
  Message m = new Message();    
  byte[] data = {0x0A};     
  m.setText(text.replace("\\r", "").replace("\\n", new String(data)));  
  Message r = service.spaces().messages().create(_space.getName(), m).setThreadKey(thread).execute();   
  Element el = new Element("message");  
  el.setAttribute("space", r.getSpace().getDisplayName());  
  el.setAttribute("text", r.getText());     
  el.setAttribute("thread", r.getThread().getName());   
  outNode.addContent(el);  
} else {    
  throw new Exception("SendHangouts failed " + "Space " + space + " not found"); 
}

0 个答案:

没有答案