如何在PHP中使用BigQuery流式insertall而不使用OAuth2或永久密钥


How can I use BigQuery streaming insertall in PHP without using OAuth2 or a permanent key?

如何在不使用oauth2或使用置换密钥的情况下使用从服务器到服务器的bigquery流式insertall?

我需要每分钟一对一地插入大约20000行。我看到的所有例子都是将GoogleAPI客户端与oauth一起使用。另一方面,在BigQuery API资源管理器中:

(https://developers.google.com/bigquery/docs/reference/v2/tabledata/insertAll)

我看到这个网址POST:

https://www.googleapis.com/bigquery/v2/projects/projectId/datasets/datasetId/tables/tableId/insertAll?key=apikey

我可以创建一个服务器密钥,但它会返回一个需要登录的注释。是否可以在不为每个插入执行请求令牌的情况下发送大量插入?请注意,我使用的是PHP。

OAuth2访问令牌的有效期大约为一小时;如果你使用这个,你就不需要为每个插件获得一个新的。PHP客户端应该管理令牌,并在令牌到期时请求新的令牌。

另一种选择是使用服务帐户或PKS#12身份验证。这需要对您的请求进行签名,但根本不需要访问令牌。请参阅此处的文档。例子有java和python,但是python应该相对容易翻译成PHP。