Я пытаюсь сделать запрос против API администратора Google, чтобы указать всех пользователей в моей Службе Google Apps. У меня есть разрешения сделать этот запрос в web UI example и получить результаты, но это 403, когда я пытаюсь сделать запрос с учетной записью службы.API Google Apps 403 с учетной записью службы
import (
"fmt"
"io/ioutil"
"log"
"golang.org/x/net/context"
"golang.org/x/oauth2/google"
directory "google.golang.org/api/admin/directory_v1"
)
func main() {
serviceAccountJSON, err := ioutil.ReadFile(serviceAccountFile)
if err != nil {
log.Fatalf("Could not read service account credentials file, %s => {%s}", serviceAccountFile, err)
}
config, err := google.JWTConfigFromJSON(serviceAccountJSON,
directory.AdminDirectoryUserScope,
directory.AdminDirectoryUserReadonlyScope,
)
client, err := directory.New(config.Client(context.Background()))
if err != nil {
log.Fatalf("Could not create directory service client => {%s}", err)
}
users, err := client.Users.List().ViewType(publicDataView).Domain(domain).Do()
if err != nil {
log.Fatalf("Failed to query all users => {%s}", err)
}
for _, u := range users.Users {
fmt.Println(u.Name.FullName)
}
}
Каждый раз, когда я исполняю я получаю 403. Те же параметры запроса работает в разделе hereTry it!
, так что я не знаю, почему он терпит неудачу.
результат: Failed to query all users => {googleapi: Error 403: Not Authorized to access this resource/api, forbidden}
Вы предоставили доступ к учетной записи службы? – DaImTo
Вы должны предоставить свою учетную запись домена домена службы https://developers.google.com/drive/web/delegation. Выполните шаги, указанные в документации. – SGC
Теперь я получил доступ к учетной записи службы и жду, пока это будет распространено. Спасибо за совет. –