2

ユーザーが自分を所有者としてカレンダーに追加できる Web アプリを作成しようとしています。カレンダーの ACL に新しいルールを挿入しようとしていますが、Calendar API へのアクセスを使用する許可を得ることができません。

ポップアップしたダイアログでスクリプトの実行を承認した後、「サービスの認証に失敗しました: カレンダー」というエラー メッセージが表示されました。

私は間違って何をしていますか?

  function insertRule() {
     ScriptApp.invalidateAuth();
     var calId = MY_CAL_ID;
     var userEmail = Session.getActiveUser().getEmail();
     var API_KEY = MY_API_KEY; 

     var apiName = 'calendar';
     var scope = 'https://www.googleapis.com/auth/calendar';
     var fetchArgs = googleOAuth_(apiName, scope);

     fetchArgs.method = "POST";

     var payload = 
     {
       "role" : "owner",
       "scope" : 
       { 
         "type" : "user",
         "value" : userEmail
       }
     };

     fetchArgs.payload = payload;

     var base = 'https://www.googleapis.com/calendar/v3/calendars/'; 
     var url = base + calId + '/acl?key=' + API_KEY;

     var response = UrlFetchApp.fetch(url, fetchArgs).getContentText();

}

function googleOAuth_(name,scope) {
  var oAuthConfig = UrlFetchApp.addOAuthService(name);
  oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
  oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
  oAuthConfig.setConsumerKey("anonymous");
  oAuthConfig.setConsumerSecret("anonymous");
  return {oAuthServiceName:name, oAuthUseToken:"always"};
}
4

1 に答える 1

1

私は同じ問題を抱えています。以下のリンクを見つけましたが、クライアントは scripts.google.com でしょうか? うまくいけば、それが私たちを正しい方向に向けさせてくれるでしょう。

http://googleappsdeveloper.blogspot.ca/2011/12/calendar-api-v3-2-legged-oauth-java.html

于 2012-10-11T15:53:23.647 に答える