1

PATCH を使用して Google グループを更新しようとしていますが、機能しません。それが構文の問題なのか、Javascript で実行できないのかはわかりません。OAUTH を使用して「取得」操作を正常に実行できますが、PATCH を使用できません。

  1. setRequestHeader の「Authorization」で OAuth または Bearer を使用する必要があります (どちらも GET では正常に機能し、「PATCH」では同じように失敗するようです。
  2. get は正常に動作します。PATCH のエラーは { "error": { "errors": [ { "domain": "global", "reason": "invalid", "message": "Permission denied: Cannot hide from Groups directory." です。} ], "code": 400, "message": "アクセス許可が拒否されました: グループ ディレクトリから非表示にできません。" } }

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    
    <script type="text/javascript">
    function loadXMLDoc() {
    var xmlhttppatcher;
    var xmlhttp;
    var data;   
    if (window.XMLHttpRequest) {
    xmlhttppatcher = new XMLHttpRequest(); xmlhttppatcher.open("PATCH","https://www.googleapis.com/groups/v1/groups/nogads2%40mydomain.org", false);
    xmlhttppatcher.setRequestHeader("Content-Type", "application/json");
    xmlhttppatcher.setRequestHeader("Authorization", "OAuth " + "ya29.AHES6ZR_yljyMvWCv0gWbwIASYYp29S8rFUA-dd-YkyyjTHz");
    //xmlhttppatcher.setRequestHeader("Authorization", "Bearer " + "ya29.AHES6ZR_yljyMvWCv0gWbwIASYYp29S8rFUA-dd-YkyyjTHz");
    data = '{"replyTo": "REPLY_TO_MANAGERS"}';
    alert(data);
    xmlhttppatcher.send(data);
    alert('Your data was sent');
    document.getElementById("myDiv1").innerHTML = xmlhttppatcher.responseText;
    alert('readystate: ' + xmlhttppatcher.readyState + ' status: ' + xmlhttppatcher.status); //this should return 4 & 200
    if (xmlhttppatcher.status == 200)
    alert("The request succeeded!\n\nThe response representation was:\n\n" + xmlhttppatcher.responseText);
    else
    alert("The request did not succeed!\n\nThe response status was: " + xmlhttppatcher.status + " " + xmlhttppatcher.statusText + ".");
    }
    if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "https://www.googleapis.com/groups/v1/groups/nogads2%40mydomain.org?alt=json", false);
    xmlhttp.setRequestHeader("Authorization", "OAuth " + "ya29.AHES6ZR_yljyMvWCv0gWbwIASYYp29S8rFUA-dd-YkyyjTHz");
    xmlhttp.send();
    alert('readystate: ' + xmlhttp.readyState + ' status: ' + xmlhttp.status); //this should return 4 & 200
    document.getElementById("myDiv2").innerHTML = xmlhttp.responseText;
    if (xmlhttp.status == 200)
    alert("The request succeeded!\n\nThe response representation was:\n\n" + xmlhttp.responseText);
    else
    alert("The request did not succeed!\n\nThe response status was: " + xmlhttp.status + " " + xmlhttp.statusText + ".");
    }
    }
    </script>
    </head>
    
    <body>
    <div id="myDiv1"><h2>Let AJAX change this text (DIV1)</h2></div><br />
    <div id="myDiv2"><h2>Let AJAX change this text (DIV2)</h2></div>
    <button type="button" onclick="loadXMLDoc()">Change Content</button>
    </body>
    

4

1 に答える 1

0

同じ問題が発生しました。新しい Groups オブジェクト [Java] を作成し、更新したい特定の属性を設定するだけで修正しました。

于 2013-03-04T17:06:35.493 に答える