Я бы хотел вставить учетную запись своего стекла Google, но я не могу этого сделать.Как я могу вставить учетную запись на свое стекло google с помощью node.js
Я использую Node.js (v0.10.31), googleapis (v1.0.11) и паспортный-Google-OAuth (v0.1.5)
конечно, я включил Google Mirror API на Консоль разработчиков Google. и сделал файл pem.
Здесь находится настройка консоли Google. (я пытался загрузить фото, но, мне нужно несколько уровней.)
pkginfo.oauth.google
CLIENT ID 670282105???-a???pbnh1pp.apps.googleusercontent.com
EMAIL ADDRESS [email protected]
CLIENT SECRET jt0WiP???pCwXT
REDIRECT URIS http://www.-----------.com:3333/auth/google/callback
JAVASCRIPT ORIGINS http://www.-----------.com:3333
http://www.-----------.com
https://mirror-api-playground.appspot.com
.
pkginfo.oauth.glass
CLIENT ID 67028????qjv.apps.googleusercontent.com
EMAIL ADDRESS [email protected]
PUBLIC KEY
FINGERPRINTS e25e3a045????a4e40 – Delete
822e7bda????e85c56 – Delete
70ae6e7c????45c7c9 – Delete
Вот мои коды.
passport.use(new GoogleStrategy({
clientID: pkginfo.oauth.google.CLIENT_ID,
clientSecret: pkginfo.oauth.google.CLIENT_SECRET,
callbackURL: pkginfo.oauth.google.REDIRECT_URL
},
function(accessToken, refreshToken, profile, done) {
var googleapis = require('googleapis');
var mirror = googleapis.mirror('v1');
var OAuth2 = googleapis.auth.OAuth2;
var jwt = new googleapis.auth.JWT(pkginfo.oauth.glass.EMAIL_ADDRESS,
pkginfo.oauth.glass.KEY_FILE,
null,//'notasecret',
['https://www.googleapis.com/auth/glass.thirdpartyauth'],
null);
jwt.authorize(function(err, tokens) {
if (err) clog.error("Error @jwt.authorize:" + err);
var oAuth2Client = new OAuth2(pkginfo.oauth.google.CLIENT_ID,
pkginfo.oauth.google.CLIENT_SECRET,
'postmessage');
oAuth2Client.setCredentials({
access_token : tokens.access_token
})
var params = {
auth: oAuth2Client,
userToken : accessToken,
accountType : "com.cocoa.glasshelpme",
accountName : profile.emails[0].value,
resource :
{
features: ["a", "b", "c"],
userData: [
{key : "realName" , value : "James jerry"}
],
authTokens: [
{ type: tokens.token_type, authToken: accessToken }
]
}
};
mirror.accounts.insert(params, callback);
function callback(err,result) {
clog.error(err);
clog.debug(result);
};
и я получил это сообщение об ошибке.
error: { errors: [ { domain: 'global', reason: 'invalid', message: 'Invalid Value' } ],
code: 400,
message: 'Invalid Value' }
спасибо.
В [руководстве для разработчиков] (https://developers.google.com/glass/develop/gdk/authentication#implementing_the_authentication_flow), Doc показывает мне, ** @ param userToken пользовательский токен, отправленный на ваш URL-адрес обратного вызова ** , Но я просто получил такой параметр, как «code = 4/TOBVkDNEWIyC4hOOC5t9n0-dk-qYjdtyWFlUkdMqMwM.otEU4oXVh_UUBrG_bnfDxpICP7VXXXXX», и я меняю этот код на access_token и refresh_token. Не могли бы вы сообщить мне, где я могу получить ** userToken **? – j2rry
You сбивают с толку веб-поток OAuth 2.0 и аутентификацию GDK: первый даст вам код, который вам нужно обменять на токены OAuth 2.0, который полностью не связан с аутентификацией GDK. Пользователь userToken извлекается, когда пользователь нажимает, чтобы установить Glassware для MyGlass: он будет частью URL-адреса при перенаправлении пользователя на страницу аутентификации. – Alain