0

Я бы хотел вставить учетную запись своего стекла 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' } 

спасибо.

ответ

0

Убедитесь, что вы обратились к группе экспертов по обзору, чтобы загрузить APK в MyGlass и предоставить им точный тип учетной записи, который вы собираетесь использовать (например, com.cocoa.glasshelpme): эти шаги необходимы, прежде чем вы сможете начать использовать этот API ,

Дополнительную информацию можно найти на странице developers guide.

UPDATE: Только что увидел, что вы используете параметр userToken с аргументом accessToken; userToken должен быть тем, который был предоставлен MyGlass, когда пользователь нажал на URL авторизации.

+0

В [руководстве для разработчиков] (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

+0

You сбивают с толку веб-поток OAuth 2.0 и аутентификацию GDK: первый даст вам код, который вам нужно обменять на токены OAuth 2.0, который полностью не связан с аутентификацией GDK. Пользователь userToken извлекается, когда пользователь нажимает, чтобы установить Glassware для MyGlass: он будет частью URL-адреса при перенаправлении пользователя на страницу аутентификации. – Alain