1

URLFetchApp を使用してドキュメント ACL からユーザーの共有権限を削除します...

以下は私のコードです

    function removeSharing(docId,userToRemove)
    {
      var base = 'https://docs.google.com/feeds/default/';
      var fetchArgs = googleOAuthDeleteUser_('docs', base);
      var url = base+'private/full/'+docId+'/acl/'+encodeURIComponent(userToRemove);
      var content = UrlFetchApp.fetch(url, fetchArgs).getContentText(); 
      return 'ok';
    }
    function googleOAuthDeleteUser_(name,scope) {
        var oAuthConfig = UrlFetchApp.addOAuthService(name);
        oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+encodeURIComponent(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",
                headers : {
                           "GData-Version": "3.0",
                           "If-Match":"*"
                }, 
                method : "DELETE",
                contentType : 'application/x-www-form-urlencoded'
        };
    }

それは私にエラーを与えています

返されたコード 400 の要求は失敗しました。サーバーの応答: GDataInvalidEntryException投稿されたエントリには、1 つ以上の必須フィールドがありません: スコープ

これを整理するのを手伝ってください。

4

1 に答える 1

1

API docsによると、パラメーターは次のようになります。

DELETE https://docs.google.com/feeds/default/private/full/resource_id/acl/user:new_writer@example.com

userToRemove に電子メール アドレスしかない場合、これはおそらく不足しているスコープです。

于 2013-06-26T17:29:51.473 に答える