我正在构建一个Chrome应用程序,我非常希望它通过云端点与服务器进行通信,但是我不确定有两个问题如何解决:
chrome-extension://EXTENSION_ID
为开发者控制台不接受为javascript来源。如何解决这些问题?
1.加载gapi客户端
实际上,我发现加载gapi客户端的唯一方法是使用webview,如此处所述。我已经对其进行了测试,但效果很好,但是很奇怪,身份验证根本不起作用,并且Cloud Endpoints认为您是匿名的。
此外,从Web视图到世界其他地方的通信非常棘手(window.postMessage不允许在回调中发送响应)。
我认为您最好使用jQuery之类的帮助程序使用AJAX请求直接调用REST方法。您只需要Authorization
使用访问令牌来设置标头,就像在jQuery中这样:
$.ajax({
type:"GET",
beforeSend: function (request)
{
request.setRequestHeader("Authorization", "Bearer "+THE_ACCESS_TOKEN);
},
url: "https://yourapp.appspot.com/_ah/api/yourapi/v1/yourmethod",
success: function(msg) {
//Put here your callback
}
});
参见下文如何获取访问令牌。
2. Chrome应用中的授权
您不必担心Chrome Apps的来源部分,只需要生成特定于Chrome App的客户端ID,然后使用Chrome Identity API即可获得用户的授权。查看Chrome Identity API文档以了解更多详细信息。
请注意,由于您将需要创建新的客户端ID,因此需要更新Google Cloud Endpoint的配置,以将该客户端ID添加到授权客户端列表中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句