如何使用node.js插入我的Google Glass帐户

时间:2014-10-17 12:02:43

标签: node.js google-glass google-mirror-api google-api-nodejs-client

我想插入我的谷歌眼镜帐户,但我不能这样做。

我正在使用node.js(v0.10.31),googleapis(v1.0.11)和passport-google-oauth(v0.1.5)

当然,我在 Google Developers Console上打开了 Google Mirror API 并制作了pem文件。

这是google Developers控制台设置。 (我试图上传图片但是,我需要一些级别。)

pkginfo.oauth.google

CLIENT ID      670282105???-a???pbnh1pp.apps.googleusercontent.com 
EMAIL ADDRESS  670282105???-????nh1pp@developer.gserviceaccount.com  
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     6702821053????qjv@developer.gserviceaccount.com 
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' }

谢谢。

1 个答案:

答案 0 :(得分:0)

确保您已与审核小组联系,在MyGlass上传您的APK,并为他们提供您要使用的确切帐户类型(例如com.cocoa.glasshelpme):在您之前需要执行这些步骤可以开始使用此API。

您可以在developers guide找到更多信息。

更新:刚看到您使用带有userToken参数的accessToken参数;当用户点击auth URL时,userToken应该是MyGlass提供的那个。