我希望能够在gmail上下文小工具中使用javascript访问gmail / calendar api(而不是将请求弹出到其他地方)。
我还想使用服务帐户进行身份验证,以便通过小工具设置/域控制访问,并且不会自动提示用户输入任何详细信息。
关于这个领域的文档是大量过时且令人困惑的信息,因此很难确定这是否可能。
我已经通过了许多不同的方法,但收效甚微。
根据此处https://developers.google.com/gadgets/docs/basic?csw=1,不再支持OAuth小工具。
。在注意到评论并放弃评论之前,花了很多时间在这种方法上无处可去接下来,尝试使用来自https://developers.google.com/gadgets/docs/reference/#gadgets.io的gadgets.io.makeRequest,但这似乎不适合我想要的,太多的自己的解决方案。我没有成功,所以放弃了尝试别的东西。
接下来尝试了gapi.auth.authorize https://developers.google.com/api-client-library/javascript/features/authentication这个看起来很有希望,但是我找不到任何关于在服务帐户中使用它的信息,我只是在尝试使用它时遇到错误(但至少错误感觉就像向前移动!)。
我目前的代码是
function connectToGmail() {
gapi.client.setApiKey(API_KEY);
window.setTimeout(checkAuth,1);
}
function checkAuth() {
var parameters = {
client_id: OAUTH2_CLIENT_ID,
scope: OAUTH2_SCOPES,
immediate: true,
output: 'embedded'
};
gapi.auth.authorize(parameters, function(result) {
console.log('login complete');
console.log(gapi.auth.getToken());
});
}
但永远不会调用授权回调 尝试过将hd:添加到参数中,以及我在寻找细节时看到的一些其他未记录的值。
在各种实验中,我通常在浏览器控制台中出现此错误
拒绝在一个框架中显示“https://accounts.google.com/o/oauth2/auth?client_id= **********。googleusercontent.com& response_type = token& state = 1847286098%7C0.1045275236”因为它设置了'X-Frame-选项'到'SAMEORIGIN'。
很公平,我理解这个问题的原因部分,但希望它通过回调给我错误 - 我无意在这里打开任何东西 - 这就是我想使用服务帐户的原因!
如果我手动导航到该URL,我会看到破碎的机器人页面
- 这是一个错误 错误:invalid_client
醇>
没有注册资料请求详细信息
立即=真
RESPONSE_TYPE =记号
范围= https://www.googleapis.com/auth/gmail.readonly
REDIRECT_URI = PostMessage的
代理= oauth2relay869439690
状态= 1847286098个| 0.1045275236
原点= https://uvh02lohhb14dcmd9rb9buet1dr4b61j-a-gm-opensocial.googleusercontent.com
include_granted_scopes =真
HD = ***********。co.uk
CLIENT_ID = .apps.googleusercontent.com
hl = en
我认为那里没有什么有用的东西,只是为了完整地展示我尝试过的东西。
关于这一点的任何想法 - 是/应该/将会是 - 可能的,如果没有任何其他方法的建议?