Golang программа для получения профиля Google+ Домен возвращает 403 Запрещено
Можете ли вы помочь мне с проблемой ниже.
Я просто пишу простой код для получения моего профиля пользователя домена Google+. 1. Я использую учетную запись домена Google+ с именем домена spaceandhow.com
Я предоставил все привилегии, перечисленные в https://developers.google.com/identity/protocols/OAuth2ServiceAccount.
В аккаунте включены как API Google, так и Google+ Domain Api.
Это функция, которую я написал.
func (p *GoogleAUTH) sendGoogleAuthReq(){
fmt.Println("GoogleAUTH package: Enter sendGoogleAuthReq")
data, err := ioutil.ReadFile("D:\\Cygwin\\home\\praprasa\\pragna2.json")
if err != nil {
fmt.Printf("ReadFile error: %s", err)
}
conf, err := google.JWTConfigFromJSON(data, "https://www.googleapis.com/auth/plus.me")
if err != nil {
fmt.Println("json error")
}
client := conf.Client(oauth2.NoContext)
resp, err := client.Get("https://www.googleapis.com/plusDomains/v1/people/me")
if err != nil {
fmt.Printf("GoogleAUTH package: request execution failed: %s", err)
return
}
defer resp.Body.Close()
fmt.Println("GoogleAUTH package: response Status:", resp.Status)
fmt.Println("GoogleAUTH package: response Headers:", resp.Header)
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Printf("GoogleAUTH package: cannot fetch token: %v", err)
return
}
fmt.Println("GoogleAUTH package: response Body:", string(body))
fmt.Println("GoogleAUTH package: Exit sendGoogleAuthReq")
}
Это сообщение об ошибке, которое я получаю
GoogleAUTH package: response Status: 403 Forbidden
GoogleAUTH package: response Headers: map[Vary:[Origin X-Origin] X-Frame-Options:[SAMEORIGIN] X-Xss-Protection:[1; mode=block] Cache-Control:[private, max-age=0] Server:[GSE] Date:[Sat, 29 Aug 2015 07:55:47 GMT] Content-Type:[application/json; charset=UTF-8] Expires:[Sat, 29 Aug 2015 07:55:47 GMT] X-Content-Type-Options:[nosniff] Alternate-Protocol:[443:quic,p=1] Alt-Svc:[quic=":443"; p="1"; ma=604800]]
GoogleAUTH package: response Body: {
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Forbidden"
}
],
"code": 403,
"message": "Forbidden"
}
}
1 ответ
Запретная ошибка произойдет из-за проблемы с токеном с плюсом API. После того, как вы получили токен для человека, которого вы аутентифицируете, вы можете просто написать код, как показано ниже, для получения информации о людях.
func (p *GoogleAUTH) sendGoogleAuthReq(){
baseUrl := "https://www.googleapis.com/plus/v1/people/me"
authbear := "Bearer "
authbear += <access_token>
cli := &http.Client{}
req, _ := http.NewRequest("GET", baseUrl, nil)
req.Header.Set("Authorization", authbear)
res, _ := cli.Do(req)
bo, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(bo))
}