我需要在我的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/