Google Admin Directory SDK中的users watch函数,参数投影错误突然抛出异常

The users watch function in Google Admin Directory SDK, suddenly throws exception for wrong argument projection

我在 GCP 上有一个运行超过 18 个月的云函数。一周前突然停止工作。

代码

import googleapiclient.discovery
        
adminDirectoryService = googleapiclient.discovery.build('admin', 'directory_v1', credentials = gsuiteCredentials, cache_discovery=False)

result = adminDirectoryService.users().watch(body=watchBody, projection=projection, event=eventType, maxResults=1, customer=gSuiteCutomerId, viewType=viewType).execute()

    

异常:

result = adminDirectoryService.users().watch(body=watchBody, projection=projection, event=eventType, maxResults=1, customer=gSuiteCutomerId, viewType=viewType).execute()
File "/env/lib/python3.7/site-packages/google_api_python_client-1.7.8-py3.7.egg/googleapiclient/discovery.py", line 723, in method
    raise TypeError('Got an unexpected keyword argument "%s"' % name)
TypeError: Got an unexpected keyword argument "projection"

我不知道是什么导致了这个问题。我已经检查了 documentation,它清楚地表明存在 projection 参数。

还有其他人遇到过这个问题吗?有什么建议吗?

以下解决了我的问题: 我已经从我的请求中删除了 projectionmaxResultsviewType 参数,并且一切正常。

对问题发生原因的一些解释。 googleapiclient.discovery 基于提供给它的 JSON 构建 API。似乎 Google 改变了返回的 JSON 而没有告诉任何人这些制动改变。

JSON可以找到here(对于admindirectory_v1

如果有人使用不同的版本或 API。我通过查看发现代码 here.

找到了来源

希望对其他人有所帮助。

编辑

看来问题已被 Google 解决。不再需要此答案中的解决方法