2

我已阅读 Google 提供的与 Google Chat Rest API 相关的所有文档,这些文档位于此处此处,但尚不清楚如何在消息中发送存储在 Google Drive 中的图像。Google 在 GitHub 上也没有这方面的示例,只有卡片,卡片示例基于公共图像,而不是云端硬盘中的图像。

发送消息但没有图像的代码如下:

from flask import Flask, render_template, request, json
from apiclient import discovery
from httplib2 import Http
from oauth2client.service_account import ServiceAccountCredentials

scopes = ['https://www.googleapis.com/auth/chat.bot']

key = 'file.json'

app = Flask(__name__)

@app.route('/', methods=['POST'])
def home_post():
  event = request.get_json()
  email = event['user']['email']
  message = event['message']['text']
  space = event['space']['name']

  creds = ServiceAccountCredentials.from_json_keyfile_name(key, scopes)
  CHAT = discovery.build('chat', 'v1', http=creds.authorize(Http()))

  respe = {
    "text": "from jjime",
    "attachment": [{
    "contentName": "driveimgtest.png",
    "contentType": "image/png",
    "driveDataRef": {
      "driveFileId": "ID OF IMAGE IN DRIVE"
      },
    "source":"DRIVE_FILE",
    }]
  }

  CHAT.spaces().messages().create(parent=space,body=respe).execute()
  return json.jsonify({})

@app.route('/', methods=['GET'])
def home_get():
  return render_template('home.html')

if __name__ == '__main__':
  app.run(debug=True)

所以我在 Google Chat 中“从 jjme”返回,我在终端中没有收到任何错误,但没有附加图像。该图像位于 Google Drive 中,并设置为“知道链接的任何人都可以查看”。contentName 也设置为 Google Drive 中图像的确切名称。在文档中,它没有阐明哪些参数是必要的,所以我真的不知道我错过了什么。任何帮助,将不胜感激。

4

1 回答 1

0
  • 根据您链接的文档,只有一种get方法 - 检索附件,但不发送它们。
  • 就机器人而言,它们可以发送简单的短信卡片信息。没有卡片,机器人无法发送图像。
于 2021-08-12T07:15:38.470 回答