我已阅读 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 中图像的确切名称。在文档中,它没有阐明哪些参数是必要的,所以我真的不知道我错过了什么。任何帮助,将不胜感激。