Я добавляю Google+ в свои мобильные приложения. Я создал новый идентификатор клиента (https://console.developers.google.com) для моего IOS приложения Google API Недействительный код авторизации Exchange для токена доступа и обновления
Согласно документации (https://developers.google.com/+/mobile/ios/sign-in#enable_server-side_api_access_for_your_app)
«Для того, чтобы получить маркер доступа и обновить маркер для вашего сервера, вы можете запросить одноцветный который ваш сервер обменивает на эти два токена ».
#pragma mark - GPPSignInDelegate Methods
- (void)finishedWithAuth: (GTMOAuth2Authentication *)auth error: (NSError *) error
{
if (error) {
NSLog(@"%@", error);
} else {
NSString *serverCode = [GPPSignIn sharedInstance].homeServerAuthorizationCode;
if (serverCode) {
[[AFHTTPSessionManager manager] POST:@"http://localhost:3000/user/connect/google"
parameters:@{@"device": [[[UIDevice currentDevice] identifierForVendor] UUIDString],
@"account": @"google",
@"info": serverCode}
success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"Google+ Reponse: %@", responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"%@", error);
}];
}
}
}
Я использую Nodejs и Google API узла клиента (https://github.com/google/google-api-nodejs-client/) на стороне сервера.
var google = require('googleapis');
var OAuth2 = google.auth.OAuth2;
var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
var scopes = [ 'https://www.googleapis.com/auth/plus.me' ];
oauth2Client.getToken('the token from ios', function(err, tokens) {
if (err) {
console.log(err);
} else {
console.log(tokens);
oauth2Client.setCredentials(tokens);
}
});
я получаю ответ «invalid_grant»
является идентификатор клиента на сервере же на идентификатора клиента на приложение?
любые идеи? благодаря!
вы пытаетесь на новый GooglePlus SDK? – Kittu
yup. используя последнюю версию npm googleapis – YarGnawh
В коде Node.js, где находится «код авторизации»? –