ドメイン内のすべてのユーザーの連絡先にアクセスするために、Contacts API v3 を使用して Google Apps Script Web アプリで作業しています。
これまで Contacts API リクエストに問題はありませんでしたが、ドメイン全体で (私以外の) ユーザーの連絡先にアクセスするための承認を取得する方法についてはまだわかりません。
cpanel - 高度なツールから OAuth ドメイン キーを試しましたが、これまでのところ結果はありません。ドメイン内の他のユーザーと試してみると、「返されたコード 403 の要求が失敗しました (禁止されています)」というメッセージが表示されました
前もってありがとう、ファウスト
EDIT-1 (2005 年 3 月) 近づいてきましたが、少し助けが必要です
2LO (2-legged 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)
}
助けてくれてありがとう!! ファウスト