我正在使用 Contacts API v3 在 Google Apps Script Web 应用程序中工作,以访问域内所有用户的联系人。
到目前为止,我对联系人 API 请求没有任何问题,但我还不知道如何获得跨域的授权以访问任何用户的联系人(除了我)。
我已经尝试过来自 cpanel 的 OAuth 域密钥 - 高级工具,但到目前为止没有任何结果。与域内的其他用户一起尝试时,我收到“请求返回代码 403(禁止)失败”
在此先感谢,福斯托
EDIT-1(3 月 5 日)我现在更近了,但需要一些帮助
我已将 2LO(2 腿 OAuth)与 oauth_signature 和签名请求结合起来,但仍然收到错误 401(客户端错误)!!1。这是我现在正在使用的示例代码。
function test_xOAuth() {
// OAUTH_CONSUMER_SECRET from GApps: control panel > advanced tools > Manage OAuth domain key
var domain = Session.getEffectiveUser().getEmail().split("@")[1];
var xuser = 'fausto@thexs.ca';
var method = "GET";
var baseUrl = "https://www.google.com/m8/feeds/groups/default/full";
var timestamp = getTimestamp();
var paramsJson = {
oauth_consumer_key : domain,
oauth_nonce : getNonce(timestamp),
oauth_signature_method : "HMAC-SHA1",
oauth_timestamp : timestamp,
oauth_version : "1.0"
};
var paramsStringArray = [];
for (var k in paramsJson) paramsStringArray.push(k + '="' + paramsJson[k] + '"');
var paramsString = paramsStringArray.join("&") + '&xoauth_requestor_id=' + xuser;
var signatureBaseString = method +"&"+ encodeURIComponent(baseUrl) +"&"+ encodeURIComponent(paramsString);
var signatureBytes = Utilities.computeHmacSha256Signature(signatureBaseString, OAUTH_CONSUMER_SECRET);
var signature = Utilities.base64Encode(signatureBytes);
var xoauthString = 'OAuth ' + paramsStringArray.join(",") + ',oauth_signature="' + signature + '"';
var options = {
method : method,
headers : {"Authorization" : xoauthString}
}
var url = baseUrl + '?xoauth_requestor_id=' + 'fausto@thexs.ca';
var response = UrlFetchApp.fetch(url, options);
var responseHeader = response.getHeaders();
var responseText = response.getContentText();
return HtmlService.createHtmlOutput(responseText);
}
var getTimestamp = function(){
return (Math.floor((new Date()).getTime() / 1000)).toString()
}
var getNonce = function(timestamp){
return timestamp + Math.floor( Math.random() * 100000000)
}
提前感谢您的帮助!福斯托