0
我想插入我的谷歌玻璃帳戶,但我不能這樣做。如何插入帳戶我的谷歌玻璃使用node.js
我如何使用Node.js(v0.10.31),googleapis(v1.0.11版)和護照谷歌-的OAuth(v0.1.5)
當然,我打開谷歌鏡像API上Google Developers Console。並作了pem文件。
這裏是谷歌開發者控制檯設置。 (我試着上傳圖片,但我需要一些的水平。)
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將用戶令牌發送到您的auth回調URL ** 。但我剛剛得到了這樣的代碼:「code = 4/TOBVkDNEWIyC4hOOC5t9n0-dk-qYjdtyWFlUkdMqMwM.otEU4oXVh_UUBrG_bnfDxpICP7VXXXXX」',我將此代碼更改爲access_token和refresh_token,您可以讓我知道我可以在哪裏收到** userToken **? – j2rry 2014-10-27 12:04:31
You正在混淆OAuth 2.0 Web流程和GDK認證:前者會爲您提供一個代碼,您需要交換OAuth 2.0令牌,這與GDK身份驗證完全無關。當用戶單擊以安裝您的Glassware for MyGlass:將用戶重定向到認證頁面時,它將成爲URL的一部分。 – Alain 2014-10-27 15:52:49