2013-04-09 2 views
2

У меня есть отлично работающий привод интегрированных приложений, JavaScript и идти на основе, со следующими областями:updateToken ошибка аутентификации при попытке работать с папкой данных приложения

https://www.googleapis.com/auth/userinfo.email 
https://www.googleapis.com/auth/userinfo.profile 
https://www.googleapis.com/auth/drive 

Сейчас я пытаюсь работать с папкой Application , Если я не изменю свои области, тогда я получаю, как ожидалось, ошибку, утверждающую, что область приложения не установлена ​​должным образом. Теперь добавьте следующий объем (в апи-консоли и в моем приложении):

https://www.googleapis.com/auth/drive.appdata 

теперь я, к сожалению, получить ошибку в функции googelapi oauth.updateToken с следующим сообщением об ошибке:

OAuthError: updateToken: 400 Bad Request 

Have Я пропустил понимание того, как должна использоваться папка приложения?

+0

Вы пытаетесь обменять новый токен кода? –

ответ

0

Вам нужно показать пользователю диалоговое окно и получить новый токен вместо обновления существующего. Создайте новый URL-адрес кода авторизации на config.AuthCodeURL() и попросите пользователя предоставить разрешения. После того как разрешения предоставлены пользователем, обменивайтесь кодом с конечными точками Google, вызывая t.Exchange(code).

var config = &oauth.Config{ 
    ClientId:  "YOUR_CLIENT_ID", 
    ClientSecret: "YOUR_CLIENT_SECRET", 
    Scope:  "YOUR_SCOPES", 
    RedirectURL: "YOUR_REDIRECT_URI", 
    AuthURL:  "https://accounts.google.com/o/oauth2/auth", 
    TokenURL:  "https://accounts.google.com/o/oauth2/token", 
} 

authUrl := config.AuthCodeURL("state") 
fmt.Printf("Go to the following link in your browser: %v\n", authUrl) 
t := &oauth.Transport{ 
    Config: config, 
    Transport: http.DefaultTransport, 
} 

// Read the code, and exchange it for a token. 
fmt.Printf("Enter verification code: ") 
var code string 
fmt.Scanln(&code) 
_, err := t.Exchange(code) 
if err != nil { 
    fmt.Printf("An error occurred exchanging the code: %v\n", err) 
} 
+0

спасибо, это имеет смысл, о получении нового токена вместо обновления старого. Я решил решить эту проблему (прежде чем читать этот ответ), удалив/переустановив приложение из хром-магазина и отменив авторизацию в учетных записях Google/управляющих приложениях), которые, как я полагаю, привели вещи в чистое состояние, чтобы обновить не было. – user2259762

Смежные вопросы