Лучшая подготовленная инструкция, которую вы, вероятно, могли бы найти в подобной ситуации, похожа на следующее:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (?,?,?,?,?,?,?,?)
Затем вы пройдете через свои значения и привяжите их к подготовленному оператору, убедившись, что что существует такое же количество вопросительных знаков, сколько значений, которые вы связываете.
Существует несколько основных способов аутентификации с помощью API Google, они описаны здесь:
Способы документированы «3-legged OAuth», «Использование ключей API» и, наконец, «Учетные записи службы».
Из ссылок, которые вы включили в вопрос; вы смотрите на примеры Python / Java / Node «Учетные записи службы».
Использование учетных записей службы в go
. oauthHttpClient
, о котором вы говорите, является http-клиентом который автоматически добавит информацию аутентификации в запросы.
Вы можете создать ее с помощью этого пакета:
https://godoc.org/golang.org/x/ oauth2 / google
В примерах, связанных на других языках, используется «ключевой файл json для учетной записи службы».
Используя метод, приведенный ниже, вы можете прочитать этот ключевой файл и создать jwt.Config
, которая даст вам доступ к клиенту, который вам нужен.
https://godoc.org/golang.org/x/oauth2/google#JWTConfigFromJSON
Идет эквивалент ссылок на другие языки:
data, err := ioutil.ReadFile("/path/to/your-project-key.json")
if err != nil {
log.Fatal(err)
}
conf, err := google.JWTConfigFromJSON(data, "https://www.googleapis.com/auth/firebase.remoteconfig")
if err != nil {
log.Fatal(err)
}
// Initiate an http.Client. The following GET request will be
// authorized and authenticated on the behalf of
// your service account.
client := conf.Client(oauth2.NoContext)
client.Get("...")
Get
запросов. Однако запросы, выполняемые через пакетfirebaseremoteconfig-gen
, не выполняются, и я не смог исправить их запросы. Я уверен, что он терпит неудачу, потому что они слишком много добавляют к http-запросу (сgensupport
) i>. Я больше не хочу беспокоиться об этом, потому что я не могу найти решение. Я просто буду контролировать сам JSON, который отлично работает. – creativecreatorormaybenot 17 July 2018 в 12:33