如何在节点webkit中集成谷歌联系人api



我需要在我的nw.js应用程序中集成谷歌联系人导入。我应该如何创建google app?当我将应用程序创建为 Web 应用程序时,它会要求提供不适用于桌面应用程序的redirect uri。我不清楚如何为桌面应用程序实现谷歌集成。谁能帮我解决这个问题。?

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

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

另外:谷歌文档和node-webkit github问题以及其他有关此问题的问题。


对我来说,我认为最好打开默认浏览器,用户很有可能已经通过身份验证,然后只需要单击"允许"。所以我在node-wekit应用程序中启动了简单的网络服务器,并重定向到本地主机。

您可以在我的项目中看到实现 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();

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

最新更新