标签: hangouts-chat

是否有语法在Google Hangouts Chat中指定多行代码段?

我想像Markdown选项(SO?),在哪里

four leading spaces makes it look like code
blocks have been written
Run Code Online (Sandbox Code Playgroud)

hangouts-chat

16
推荐指数
2
解决办法
1万
查看次数

是否可以避免 Google Hangout Chat 链接预览显示身份验证挑战?

您好,我们在工作中使用 Google Hangouts Chat。我们喜欢看到链接预览,但是如果我们链接到受 gsuite autherization 保护的内部资源,链接预览只是一个告诉机器人登录的框。有没有办法避免这种情况?

在此处输入图片说明

hangouts-chat

8
推荐指数
0
解决办法
1111
查看次数

如何与组织外部的用户聊天

新版环聊聊天似乎不允许我们与组织外部的人(其他GSuite用户/ Gmail用户)聊天。如何启用此功能。

hangouts-chat

6
推荐指数
2
解决办法
9101
查看次数

错误400:invalid_scope"https://www.googleapis.com/auth/chat.bot"

新谷歌聊天聊天的文档说你需要授权范围https://www.googleapis.com/auth/chat.bot做几乎任何事情.

这是错误:

在此输入图像描述

在使用OAuth2客户端生成身份验证URL时,我收到范围无效的消息.如果我使用https://www.googleapis.com/auth/chatgoogle plus等其他范围,我就没有这个问题.

当我尝试在API资源管理器中搜索内容时,URL或URL部分的组合也不起作用.

这是我获取URL的代码,似乎对其他一切工作正常:

var {google} = require('googleapis');
var OAuth2 = google.auth.OAuth2;

var oauth2Client = new OAuth2(
  "clientid-idididid.apps.googleusercontent.com",
  "_secretsuff",
  "http://localhost:3000/auth/google/callback"
);

var scopes = [
    "https://www.googleapis.com/auth/chat", //Works
    "https://www.googleapis.com/auth/chat.bot"  // Does not work
];

var url = oauth2Client.generateAuthUrl({
  access_type: 'offline',
  scope:  scopes,
});

console.log(url);
Run Code Online (Sandbox Code Playgroud)

google-authentication oauth-2.0 google-oauth2 hangouts-chat

5
推荐指数
1
解决办法
2039
查看次数

DialogFlow 中的fulfillmentText 与fulfillmentMessages

我正在制作一个目前使用 Google Hangout Chat 的聊天机器人,但将移植到其他聊天平台上。
聊天代码在 Node.js 后端处理,意图识别是使用 DialogFlow 的 Nodejs API 完成的。

环聊聊天响应如下:

{
  thread: {
    name: thread.name
  },
  text: 'The response in text',
  cards:['List of cards to show data']
}
Run Code Online (Sandbox Code Playgroud)

数据工作正常,但我坚持解析从 DialogFlow 获得的响应并决定text响应的属性。有两个选项可以选择作为text属性发送。一个是queryResult.fulfillmentText它只是一个字符串并且很容易分配给text属性,而另一个是queryResult.fulfillmentMessages在某处包含相同文本的对象数组。这就是我的情况:

"fulfillmentText": "We could find few matching products based on your query",
"fulfillmentMessages": [
  {
    "text": {
      "text": [
        "We could find few matching products based on your query"
      ]
    }
  },
  {
    "text": {
      "text": …
Run Code Online (Sandbox Code Playgroud)

javascript node.js google-cloud-platform dialogflow-es hangouts-chat

5
推荐指数
1
解决办法
4470
查看次数

如何在谷歌环聊中删除 Webhook 发送的消息

我跟随传入的 bot python发送带有 webhook 的消息,我想用Method:delete删除它。

但我收到错误 401,以下是错误消息。

{'error': {'code': 401,
           'message': 'Request is missing required authentication credential. '
                      'Expected OAuth 2 access token, login cookie or other '
                      'valid authentication credential. See '
                      'https://developers.google.com/identity/sign-in/web/devconsole-project.',
           'status': 'UNAUTHENTICATED'}}
Run Code Online (Sandbox Code Playgroud)

Webhook 似乎使用密钥和令牌作为授权。但是我无法删除具有相同 url(目标为“data-id”)的消息。

hangouts-api hangouts-chat

5
推荐指数
1
解决办法
1033
查看次数

聊天机器人:如何验证来自谷歌环聊的传入请求

我们已经整合了一个谷歌环聊聊天机器人,为我们的团队提供一些方便的功能。机器人属于“机器人 URL”种类,这意味着环聊将请求发送到应用端点,我们的应用会做出适当的响应。目前,我们正在努力验证来自谷歌的传入请求。每个请求在 Authentication 标头中都有一个不记名令牌,但该 JWT 令牌不会验证。php 客户端库 [ https://github.com/googleapis/google-api-php-client]和在线验证器 [ https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=] 都返回错误“无效签名”

谷歌客户端 php 库的 Google_AccessToken_Verify 类有一个 verifyIdToken 方法,我们在本示例中使用该方法 [ https://github.com/GoogleCloudPlatform/php-docs-samples/blob/master/auth/src/auth_cloud_explicit.php]。我们将服务帐户密钥文件的路径和项目 ID 传递给 google 客户端构造函数。然后我们将传入请求的不记名令牌传递给 verifyIdToken 方法。

use Google_Client;

// inside a laravel controller with $request in scope

$bearer_token = $request->bearerToken();
$keyPath = FILE_LOCATION

$client = new Google_Client([
               'keyFilePath' => $keyPath,
               'projectId' => GCP_CLIENT_ID
           ]);

$payload = $client->verifyIdToken($bearer_token);

if(!empty($payload)){

    return $this->call(ParseGoogleChatRequest::class, [$request]);

}else{

     \Log::debug('bad token');

}

Run Code Online (Sandbox Code Playgroud)

我希望谷歌客户端库能够验证谷歌 JWT。这个 github 问题 [ https://github.com/firebase/php-jwt/issues/175]反映了我们实施这种方法的经验。我想获得一些关于我们应该使用哪种方法的一般指导。

validation bearer-token hangouts-api hangouts-chat

5
推荐指数
1
解决办法
456
查看次数

使用哪些事件代替 Google Chat 的“DeprecatedEvent”

我有几个与google.golang.org/api/chat/v1.

  1. 似乎唯一可用的Event对象是DeprecatedEvent. 那么,什么是非弃用的呢?

  2. 如果DeprecatedEvent确实是要使用的DeprecatedEvent对象,则在对象内部,有一个User *User字段。但是,User对象似乎与我从响应中实际得到的不同。

例如:

{
  'eventTime': '2019-08-27T06:50:12.391141Z',
  'user': {
    'name': 'users/112...',
    'email': 'iskandar.setiadi@...',
    'avatarUrl': 'https://lh3.googleusercontent.com/a-/AAu...',
    'displayName': 'Iskandar Setiadi',
    'type': 'HUMAN'
  },
  'type': 'ADDED_TO_SPACE',
  'space': {
    'name': 'spaces/7ag...',
    'type': 'DM'
  }
}
Run Code Online (Sandbox Code Playgroud)

在API中,User对象仅包含displayNamename,和type。似乎emailavatarUrl不存在。v1 是否已过时,或者是否有任何我不知道的替代方案?

go hangouts-chat

5
推荐指数
0
解决办法
257
查看次数

从Google环聊中的某个房间获取特定的会话链接

我们的组织在Google Hangouts聊天(新聊天)上谈论它的“事件”,作为其中的一部分,我们要将该会话记录到另一个系统中

现在,我要做的是搜索特定的关键字,然后通过搜索结果找到这些会话,然后单击“转到主题”以获取会话URL。

我使用的是在聊聊天API的“指南”部分下找到的以下代码,但它仍然没有提供对话的网址-

/**
 * 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.user.displayName;
  }
  var message = name + " said \"" + event.message.text + "\"";

  return { "text": message };
}

/**
 * Responds to an ADDED_TO_SPACE event in Hangouts Chat. …
Run Code Online (Sandbox Code Playgroud)

google-apps-script hangouts-chat

5
推荐指数
0
解决办法
106
查看次数

Google Forms / Apps Script / Hangouts Chat - Bot 消息内容单独发送而不是一起发送

我正在尝试制作一个 Google Hangouts Chat Bot,它可以检测何时填写表单,并使用机器人将最近提交的表单的响应发送到 Hangouts Chat。我已经基于现有代码构建了它(我的 JS / GAS 知识接近于零),主要基于 GitHub TSFormBot 存储库。问题是,它将每个响应作为不同的消息单独发送,而不是包含所有内容的 1 条消息。

例如,一个 4 个问题的表单会导致机器人发送 4 个单独的回复,每个回复中都有一个不同的答案。你能帮我看看我哪里出错了,这样我就可以在一个回复中获得所有 4 个答案的内容吗?

谢谢!

当前代码:

function postToRoom(e) {
    var formResponses = FormApp.getActiveForm().getResponses();
  var formResponse = formResponses[formResponses.length-1];
  var itemResponses = formResponse.getItemResponses();
    for (var j = 0; j < itemResponses.length; j++) {
    var itemResponse = itemResponses[j];
  var options, options, url; 
  url = PropertiesService.getScriptProperties().getProperty('WEBHOOK_URL');
  if (url) {
    try { 
      payload = {
        "cards": [
          {
            "header": {
              "title": "There is a new …
Run Code Online (Sandbox Code Playgroud)

javascript google-apps-script google-forms hangouts-chat

5
推荐指数
1
解决办法
839
查看次数