如何在节点webkit中集成google contacts api

时间:2015-02-03 06:56:30

标签: google-api desktop-application google-apps node-webkit hello.js

我需要在我的nw.js应用中集成谷歌联系人导入。我该如何创建google app?当我将应用程序创建为Web应用程序时,它会询问redirect uri哪些桌面应用程序无法使用。我不清楚如何实现桌面应用的谷歌集成。谁可以帮我这个事。 ?

1 个答案:

答案 0 :(得分:0)

桌面应用程序的OAuth中有一个选项,而不是http://domain,您将重定向到app://something,您的应用程序将启动或接收回调。

为此,在您的应用程序中,您需要在新窗口中打开请求令牌URL(node-webkit应用程序中的新窗口)。

另外:google docs以及node-webkit github issueother issue有关此事。


对我来说,我认为更好的是打开默认浏览器,用户已经通过身份验证的可能性很高,然后只需要点击"允许"。所以我在node-wekit app中启动简单的webserver并重定向到localhost。

您可以在我的项目https://github.com/Paxa/postbird/blob/90cfb53b1775310eb2f262c8b54c9dba15b5cc0a/app/heroku_client.js#L185

中查看实施情况

要打开默认浏览器,请使用命令"打开" (仅适用于mac)

child_process.spawn('open', [url]);

当用户重定向回来时,我也尝试关闭浏览器窗口,它可以工作但不总是。

response.writeHead(200, {"Content-Type": "text/html"});
response.end("<script type='text/javascript'>window.close();</script>");

可能是我在接收重定向时也应该激活一个窗口(还没试过):

var currentWin = require('gui').Window.get();
currentWin.focus();

如果谷歌不允许将localhost作为回调网址,您可以尝试使用某个域(甚至免费)并将其指向127.0.0.1或使用http://readme.localtest.me/