प्राप्त सामग्री का एक संगम पृष्ठ Apps के साथ स्क्रिप्ट और पार्स इसकी सामग्री

0

सवाल

मैं एक इसी तरह के सवाल के लिए एक नया पृष्ठ बनाने में संगम नहीं है, लेकिन एक विशिष्ट एक के लिए हो रही सामग्री का एक संगम बादल पृष्ठ के आधार पर आईडी उदाहरण के लिए गूगल में App स्क्रिप्ट और पार्स करने के लिए सामग्री के शरीर के पृष्ठ पर, उदाहरण के लिए, पार्स JSON परिणाम या हो सकता है का उपयोग संगम बाकी एपीआई प्राप्त करने के लिए सामग्री के विशिष्ट वस्तु.

मैं अनुकूलित स्रोत कोड से उल्लेख किया है, सवाल के रूप में का पालन करें:

function myFunction() {
  
  const url = "https://<company>.atlassian.net/wiki/rest/api/content/<ID>";
  const token = "<token>";
  const user = "<email>";

  headers = { "Authorization": "Basic " + Utilities.base64Encode(user + ':' + token) };
  var params = {
    "method": "GET",
    "headers": headers,
    "muteHttpExceptions": false,
    "contentType": "application/json"
  };

  let createResponse = UrlFetchApp.fetch(url, params);
  console.log(createResponse.getContentText());

}

जहां <xxxx> कर रहे हैं विशिष्ट मानकों से संबंधित करने के लिए अपने खाते. <ID> है संगम दस्तावेज़ ID.

मैं पालन कर रहा हूँ बाकी एपीआई के विनिर्देश के लिए संगम बादल

मैं हूँ हो रही एक प्रतिक्रिया है, लेकिन यह सामान्य संपत्ति के बारे में पृष्ठ.

बदलने के लिए url निम्न:

https://<company>.atlassian.net/wiki/rest/api/content/<ID>?expand=body.storage

उनका कहना निम्न प्रत्यय: ?expand=body.storage

यह उत्पन्न करता है सामग्री, लेकिन यह मुश्किल है पार्स करने के लिए:

{"id":"2020706439","type":"page","status":"current","title":"Onboard Resource Template for 
more than one resource","macroRenderedOutput":{},"body":{"storage":{"value":"<ac:structured-macro ac:name=
\"info\" ac:schema-version=\"1\" ac:macro-id=\"756d4d54-7492-49ac-b502-19d1a740ea92\"><ac:rich-text-body><p>
To use it, please make a copy of this template and replace the title with Resource Name(s) and add the 
onboarding date as a suffix</p></ac:rich-text-body></ac:structured-macro><table data-layout=\"wide\">
<colgroup><col style=\"width: 182.0px;\" /><col style=\"width: 144.0px;\" /><col style=\"width: 148.0px;\" />
<col style=\"width: 143.0px;\" /><col style=\"width: 137.0px;\" /><col style=\"width: 142.0px;\" />
</colgroup><tbody><tr><td data-highlight-colour=\"#6fa8dc\" colspan=\"6\"><p style=\"text-align: center;\">
<strong>New&nbsp;Resource&nbsp;(s) Onboarding&nbsp;Information and Tracking</strong></p></td></tr>
<tr><td data-highlight-colour=\"#ff9900\"><p>Information&nbsp;Provided&nbsp;by&nbsp;Vendor</p></td>
<td data-highlight-colour=\"#ff9900\"><p>Resource 1</p></td><td data-highlight-colour=\"#ff9900\">
<p>Resource 2</p></td><td data-highlight-colour=\"#ff9900\"><p>Resource 3</p></td><td data-highlight-colour=\"#ff9900\">
<p>Resource 4</p></td><td data-highlight-colour=\"#ff9900\"><p>Resource 5</p></td></tr><tr><td><p>First&nbsp;
Name</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Last&nbsp;
Name</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Address</p></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Phone&nbsp;Number</p></td><td>
<p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>E-Mail</p></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>WFH&nbsp;or&nbsp;W@Office</p></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Location (if W@Office)</p></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Role</p></td><td><p /></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td></tr><tr><td><p>Start&nbsp;Date</p></td><td><p /></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td></tr><tr><td><p>End&nbsp;Date</p></td><td><p /></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td></tr><tr><td><p>Vendor's&nbsp;Name</p></td><td><p /></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td></tr><tr><td><p>Vendor's&nbsp;Contact&nbsp;Name</p></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Vendor's&nbsp;Phone&nbsp;Number</p></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Manager's&nbsp;Name</p></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Team</p></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td></tr><tr><td data-highlight-colour=\"#b6d7a8\" colspan=\"6\">
<p>Information&nbsp;Provided&nbsp;by&nbsp;Onboarding Manager</p></td></tr><tr><td><p>New&nbsp;Resource&nbsp;ID</p></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>New&nbsp;
Resource&nbsp;Company&nbsp;E-mail</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td>
<td><p /></td></tr><tr><td><p>Cost&nbsp;Center</p></td><td><p /></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td></tr><tr><td><p>Laptop&nbsp;Serial&nbsp;Number</p></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td data-highlight-colour=\"#b6d7a8\">
<p><ac:inline-comment-marker ac:ref=\"377a17e3-a869-451f-a58b-19cac76916a4\">Access&nbsp;Requests&nbsp;by&nbsp;
Rosana</ac:inline-comment-marker></p></td><td data-highlight-colour=\"#b6d7a8\"><p style=\"text-align: center;\">
Ticket&nbsp;Number</p></td><td data-highlight-colour=\"#b6d7a8\"><p style=\"text-align: center;\">Date&nbsp;</p><p style=\"text-align: center;\">
Submitted</p></td><td data-highlight-colour=\"#b6d7a8\"><p>SNOW Assignee</p></td>
<td data-highlight-colour=\"#b6d7a8\"><p style=\"text-align: center;\">
Ready&nbsp;in<ac:inline-comment-marker ac:ref=\"269ae226-6036-4ede-9720-d3c25f5d31d2\">&nbsp;</ac:inline-comment-marker>(n)-Days</p></td>
<td data-highlight-colour=\"#b6d7a8\"><p style=\"text-align: center;\">Date Completed</p></td></tr><tr><td><p>Company&nbsp;ID&nbsp;Request</p></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Laptop</p></td><td><p /></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td></tr><tr><td><p>Slack</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td>
<p>Outlook</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>WebEx</p></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Ping</p></td><td><p /></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td></tr><tr><td data-highlight-colour=\"#a2c4c9\" colspan=\"6\"><p>Access&nbsp;Request&nbsp;by&nbsp;
Program Manager (or a PM on his behalf)</p></td></tr><tr><td><p>SNOW Access and Timesheets</p></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td></tr><tr><td data-highlight-colour=\"#f4cccc\" colspan=\"6\">
<p>Access Request/Action by&nbsp;David&nbsp;Leal</p></td></tr><tr><td><p>Access to Jira/Confluence</p></td>
<td><p /></td><td><p /></td><td><p>Jira Admin</p></td><td><p /></td><td><p /></td></tr>
<tr><td><p>Resource&nbsp;Plan</p></td><td><p /></td><td><p /></td><td><p>Snow Manager</p></td>
<td><p /></td><td><p /></td></tr>
<tr><td><p><em>Actions</em></p></td><td data-highlight-colour=\"#f4f5f7\" colspan=\"5\"><p style=\"text-align: center;\">
<em> Date Completed</em></p></td></tr><tr><td><p style=\"text-align: right;\">Add to Slack&nbsp;Channels</p></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr>
<td><p style=\"text-align: right;\">Add to JIRA&nbsp;Projects</p></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr>
<tr><td data-highlight-colour=\"#fff2cc\"><p>Access&nbsp;Requests&nbsp;by&nbsp;Tech Lead</p></td>
<td data-highlight-colour=\"#fff2cc\"><p>Ticket Number</p></td><td data-highlight-colour=\"#fff2cc\"><p>Date Submitted</p></td>
<td data-highlight-colour=\"#fff2cc\"><p>SNOW Assginee</p></td><td data-highlight-colour=\"#fff2cc\"><p>Ready in Days</p></td>
<td data-highlight-colour=\"#fff2cc\"><p>Date Completed</p></td></tr><tr><td><p>AWS&nbsp;Work&nbsp;Space&nbsp;(VDI)</p></td>
<td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>GitLab</p></td><td><p /></td><td><p /></td>
<td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>AWS Console</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td>
<td><p /></td></tr></tbody></table><p />",
"representation":"storage","embeddedContent":[],"_expandable":{"content":"/rest/api/content/2020706439"}},
"_expandable":{"editor":"","atlas_doc_format":"","view":"","export_view":"","styled_view":"","dynamic":"",
"editor2":"","anonymous_export_view":""}},"extensions":{"position":158},"_expandable":{"childTypes":"","container":
"/rest/api/space/PDC","metadata":"","operations":"","schedulePublishDate":"","children":"/rest/api/content/2020706439/child",
"restrictions":"/rest/api/content/2020706439/restriction/byOperation","history":"/rest/api/content/2020706439/history",
"ancestors":"","version":"","descendants":"/rest/api/content/2020706439/descendant","space":
"/rest/api/space/PDC"},"_links":{"editui":"/pages/resumedraft.action?draftId=2020706439","webui":
"/spaces/PDC/pages/2020706439/Onboard+Resource+Template+for+more+than+one+resource","context":"/wiki",
"self":"https://<company>.atlassian.net/wiki/rest/api/content/2020706439","tinyui":"/x/h4hxe","collection":
"/rest/api/content","base":"https://pan-american.atlassian.net/wiki"}}

सामग्री मैं प्राप्त करना चाहते है के एक भाग के संगम टेबल इस तरह से एक: enter image description here

यहाँ निम्नलिखित प्रश्न के संबंध में इस समस्या:

  1. यह सबसे अच्छा दृष्टिकोण प्राप्त करने के लिए संगम पृष्ठ की सामग्री के लिए आदेश में यह पार्स?, उदाहरण के लिए का उपयोग करने का विकल्प: expand=body.storage पर या इसके विपरीत वहाँ बेहतर तरीके से प्राप्त करने के लिए सामग्री के संगम पृष्ठ (या विशिष्ट तालिका), तो यह आसान करने के लिए पार्स.
  2. यदि सामग्री प्राप्त करने का सबसे अच्छा तरीका यह करना है, तो वहाँ है किसी भी HTML तालिका जावास्क्रिप्ट पुस्तकालय या उपकरण या स्क्रिप्ट को पार्स करने के लिए टेबल सामग्री?
2

सबसे अच्छा जवाब

1

मुझे विश्वास है कि अपने लक्ष्य के रूप में निम्नानुसार है.

  • आप चाहते हैं के लिए पार्स HTML से नमूना मूल्य (it generates the content, but it is difficult to parse:) में अपने प्रश्न डाल दिया है और उन्हें करने के लिए शीट.
    • आप पहले से ही सक्षम किया गया मान प्राप्त करने के लिए एपीआई से आप चाहते हैं का उपयोग करने के लिए.

इस मामले में, कैसे के बारे में निम्न नमूना स्क्रिप्ट? इस मामले में, मैं करने के लिए चाहते का उपयोग कर का प्रस्ताव शीट एपीआई. के pasteData की चादरें एपीआई कर सकते हैं पार्स HTML तालिका ।

नमूना स्क्रिप्ट:

कृपया कॉपी और पेस्ट करने के लिए निम्न स्क्रिप्ट स्क्रिप्ट संपादक के गूगल स्प्रेडशीट में । और, इस स्क्रिप्ट का उपयोग करता चादरें एपीआई. तो कृपया सक्षम चादरें एपीआई पर उन्नत गूगल सेवाओं. और, कृपया चादर सेट का नाम है । और फ़ंक्शन चलाते हैं । इस से, चादरें एपीआई डेसिमल HTML तालिका करने के लिए कहते हैं चादर.

function myFunction() {
  const obj = { "id": "2020706439", "type": "page", "status": "current", "title": "Onboard Resource Template for more than one resource", "macroRenderedOutput": {}, "body": { "storage": { "value": "<ac:structured-macro ac:name=\"info\" ac:schema-version=\"1\" ac:macro-id=\"756d4d54-7492-49ac-b502-19d1a740ea92\"><ac:rich-text-body><p>To use it, please make a copy of this template and replace the title with Resource Name(s) and add the onboarding date as a suffix</p></ac:rich-text-body></ac:structured-macro><table data-layout=\"wide\"><colgroup><col style=\"width: 182.0px;\" /><col style=\"width: 144.0px;\" /><col style=\"width: 148.0px;\" /><col style=\"width: 143.0px;\" /><col style=\"width: 137.0px;\" /><col style=\"width: 142.0px;\" /></colgroup><tbody><tr><td data-highlight-colour=\"#6fa8dc\" colspan=\"6\"><p style=\"text-align: center;\"><strong>New&nbsp;Resource&nbsp;(s) Onboarding&nbsp;Information and Tracking</strong></p></td></tr><tr><td data-highlight-colour=\"#ff9900\"><p>Information&nbsp;Provided&nbsp;by&nbsp;Vendor</p></td><td data-highlight-colour=\"#ff9900\"><p>Resource 1</p></td><td data-highlight-colour=\"#ff9900\"><p>Resource 2</p></td><td data-highlight-colour=\"#ff9900\"><p>Resource 3</p></td><td data-highlight-colour=\"#ff9900\"><p>Resource 4</p></td><td data-highlight-colour=\"#ff9900\"><p>Resource 5</p></td></tr><tr><td><p>First&nbsp;Name</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Last&nbsp;Name</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Address</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Phone&nbsp;Number</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>E-Mail</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>WFH&nbsp;or&nbsp;W@Office</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Location (if W@Office)</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Role</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Start&nbsp;Date</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>End&nbsp;Date</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Vendor's&nbsp;Name</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Vendor's&nbsp;Contact&nbsp;Name</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Vendor's&nbsp;Phone&nbsp;Number</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Manager's&nbsp;Name</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Team</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td data-highlight-colour=\"#b6d7a8\" colspan=\"6\"><p>Information&nbsp;Provided&nbsp;by&nbsp;Onboarding Manager</p></td></tr><tr><td><p>New&nbsp;Resource&nbsp;ID</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>New&nbsp;Resource&nbsp;Company&nbsp;E-mail</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Cost&nbsp;Center</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Laptop&nbsp;Serial&nbsp;Number</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td data-highlight-colour=\"#b6d7a8\"><p><ac:inline-comment-marker ac:ref=\"377a17e3-a869-451f-a58b-19cac76916a4\">Access&nbsp;Requests&nbsp;by&nbsp;Rosana</ac:inline-comment-marker></p></td><td data-highlight-colour=\"#b6d7a8\"><p style=\"text-align: center;\">Ticket&nbsp;Number</p></td><td data-highlight-colour=\"#b6d7a8\"><p style=\"text-align: center;\">Date&nbsp;</p><p style=\"text-align: center;\">Submitted</p></td><td data-highlight-colour=\"#b6d7a8\"><p>SNOW Assignee</p></td><td data-highlight-colour=\"#b6d7a8\"><p style=\"text-align: center;\">Ready&nbsp;in<ac:inline-comment-marker ac:ref=\"269ae226-6036-4ede-9720-d3c25f5d31d2\">&nbsp;</ac:inline-comment-marker>(n)-Days</p></td><td data-highlight-colour=\"#b6d7a8\"><p style=\"text-align: center;\">Date Completed</p></td></tr><tr><td><p>Company&nbsp;ID&nbsp;Request</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Laptop</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Slack</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Outlook</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>WebEx</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>Ping</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td data-highlight-colour=\"#a2c4c9\" colspan=\"6\"><p>Access&nbsp;Request&nbsp;by&nbsp;Program Manager (or a PM on his behalf)</p></td></tr><tr><td><p>SNOW Access and Timesheets</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td data-highlight-colour=\"#f4cccc\" colspan=\"6\"><p>Access Request/Action by&nbsp;David&nbsp;Leal</p></td></tr><tr><td><p>Access to Jira/Confluence</p></td><td><p /></td><td><p /></td><td><p>Jira Admin</p></td><td><p /></td><td><p /></td></tr><tr><td><p>Resource&nbsp;Plan</p></td><td><p /></td><td><p /></td><td><p>Snow Manager</p></td><td><p /></td><td><p /></td></tr><tr><td><p><em>Actions</em></p></td><td data-highlight-colour=\"#f4f5f7\" colspan=\"5\"><p style=\"text-align: center;\"><em> Date Completed</em></p></td></tr><tr><td><p style=\"text-align: right;\">Add to Slack&nbsp;Channels</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p style=\"text-align: right;\">Add to JIRA&nbsp;Projects</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td data-highlight-colour=\"#fff2cc\"><p>Access&nbsp;Requests&nbsp;by&nbsp;Tech Lead</p></td><td data-highlight-colour=\"#fff2cc\"><p>Ticket Number</p></td><td data-highlight-colour=\"#fff2cc\"><p>Date Submitted</p></td><td data-highlight-colour=\"#fff2cc\"><p>SNOW Assginee</p></td><td data-highlight-colour=\"#fff2cc\"><p>Ready in Days</p></td><td data-highlight-colour=\"#fff2cc\"><p>Date Completed</p></td></tr><tr><td><p>AWS&nbsp;Work&nbsp;Space&nbsp;(VDI)</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>GitLab</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr><tr><td><p>AWS Console</p></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td><td><p /></td></tr></tbody></table><p />", "representation": "storage", "embeddedContent": [], "_expandable": { "content": "/rest/api/content/2020706439" } }, "_expandable": { "editor": "", "atlas_doc_format": "", "view": "", "export_view": "", "styled_view": "", "dynamic": "", "editor2": "", "anonymous_export_view": "" } }, "extensions": { "position": 158 }, "_expandable": { "childTypes": "", "container": "/rest/api/space/PDC", "metadata": "", "operations": "", "schedulePublishDate": "", "children": "/rest/api/content/2020706439/child", "restrictions": "/rest/api/content/2020706439/restriction/byOperation", "history": "/rest/api/content/2020706439/history", "ancestors": "", "version": "", "descendants": "/rest/api/content/2020706439/descendant", "space": "/rest/api/space/PDC" }, "_links": { "editui": "/pages/resumedraft.action?draftId=2020706439", "webui": "/spaces/PDC/pages/2020706439/Onboard+Resource+Template+for+more+than+one+resource", "context": "/wiki", "self": "https://<company>.atlassian.net/wiki/rest/api/content/2020706439", "tinyui": "/x/h4hxe", "collection": "/rest/api/content", "base": "https://pan-american.atlassian.net/wiki" } };
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("Sheet1"); // Please set the sheet name.
  const requests = [{ pasteData: { data: obj.body.storage.value, html: true, coordinate: { sheetId: sheet.getSheetId() } } }];
  Sheets.Spreadsheets.batchUpdate({requests}, ss.getId());

  // When you want to retrieve the values as an array, please use the following script.
  // const array = sheet.getDataRange().getValues();
  // console.log(array)
}

परिणाम:

जब यह स्क्रिप्ट चलाने के लिए, निम्न परिणाम प्राप्त की है ।

enter image description here

ध्यान दें:

  • यह नमूना स्क्रिप्ट का उपयोग करता है अपने नमूना मूल्य. तो जब संरचना के मूल्य बदल गया है, इस स्क्रिप्ट सक्षम नहीं हो सकता है किया जा करने के लिए प्रयोग किया जाता है । तो कृपया सावधान रहना ।
  • मैं पुष्टि कर सकते हैं कि इस स्क्रिप्ट ठीक काम करता है जब मैं का उपयोग अपने नमूना मूल्य. तो जब आप परीक्षण किया है इस स्क्रिप्ट के लिए अपने वास्तविक मूल्य, जब एक त्रुटि होती है, जाँच कृपया पुनः प्राप्त मान फिर से.

संदर्भ:

2021-11-25 00:23:10

आपकी प्रतिक्रिया के लिए धन्यवाद @Tanaike, यह एक बहुत ही सुरुचिपूर्ण समाधान और generic. केवल दोष यह है कि मैं यह देखने की आवश्यकता है बनाने के लिए एक अस्थायी शीट की जरूरत है कि किया जा करने के लिए नष्ट कर दिया हो रही के बाद सरणी के मूल्यों के साथ. मैं पूरा एक ही है, लेकिन और अधिक के साथ लाइन कोड की नियमित अभिव्यक्ति का उपयोग कर. मैं इसे यहाँ पोस्ट. यदि मैं नहीं कर रहा हूँ किसी भी अन्य समाधान है, मैं पर विचार करेंगे तुम्हारा के रूप में मान्य । मैं की तरह लग रहा है वहाँ कोई अन्य विकल्प से प्राप्त सामग्री का उपयोग कर: expand=body.storage
David Leal

@डेविड लील धन्यवाद जवाब देने के लिए. मैंने सोचा कि चादरें एपीआई मजबूत पार्सर के लिए HTML डेटा. और, अगर इस मामले में, संरचना के HTML डेटा बदल गया है, यह हो सकता है जारी रखने के लिए सक्षम होना करने के लिए प्रयोग किया जाता है । इसलिए मैं प्रस्तावित है । लेकिन ऐसा लगता है कि इस विधि उपयुक्त नहीं है अपनी स्थिति के लिए. मैं गहराई से माफी माँगने के लिए । लेकिन मुझे लगता है कि इस विधि उपयोगी हो सकता है के लिए अन्य उपयोगकर्ताओं के लिए है । तो मैं छोड़ने के लिए चाहते हैं । मैं के लिए माफी माँगता हूँ यह फिर से है.
Tanaike

नहीं सब पर @Tanaike. मैं स्वीकार किए जाते हैं, अपनी प्रतिक्रिया के रूप में सही एक है. यह अधिक सामान्य है और situable के लिए परिदृश्यों की एक किस्म. समय में आप जवाब दिया मैं था इस समाधान लगभग पूरा हो गया है. अन्यथा मैं का उपयोग करने के लिए अपने समाधान मेरी समस्या है । बहुत बहुत धन्यवाद आपकी रुचि के लिए मदद करने पर मुझे और अपने समाधान के लिए, यह करने के लिए खोलता है मुझे चादरें करने के लिए एपीआई । मैं ध्यान में रखना होगा भविष्य में स्थितियों.
David Leal
0

यहाँ एक संभव समाधान का उपयोग निकालने के लिए नियमित अभिव्यक्ति से जानकारी createResponse.getContentText(). यह कम सामान्य की तुलना में समाधान @Tanaike ही प्रदान की जाती है, लेकिन यह नहीं की आवश्यकता उत्पन्न करने के लिए एक auxiliar टैब (शीट) पर सक्रिय स्प्रेडशीट की जरूरत है कि हटाया जा करने के लिए हो रही के बाद सभी रिकॉर्ड:

/*
@param id {String} Confluence ID page 
*/
function getOnboardRecords(id) {
  const URL = https://<COMPANY>.atlassian.net/wiki/rest/api/content/%s?expand=body.storage;
  const TOKEN = "Provide the token";
  const USER = "Provide user name, i.e an email";
  // Relevant columns to get the information
  const ROW_NAMES = ["First Name", "Last Name", "Phone Number", 
    "E-Mail", "Role", "Start Date", "End Date", "Vendor's Name",
    "Team", "New Resource ID","New Resource Company E-mail"];

  function parsePhone(s) {
    let ss = s.replace(/[ \(\)\-+]/g, "");
    return (ss.length == 10) ? "1" + ss : ss; // Adding US code
  }

  function parseDate(d) {
    let dateRegEx = new RegExp(/<time datetime=\\"([0-9]{4}-[0-9]{2}-[0-9]{2})\\" ?\/>/);
    return d.match(dateRegEx)[1];
  }

  function parseEmail(e) {
    let s = e.replaceAll(/<.*?>|<\/.*?>/g, "");
    let validEmailRegEx = new RegExp(/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/);
    const NON_VALID_EMAIL = "The input argument: '%s' is not a valid email";
    if (!validEmailRegEx.test(s)) throw new Error(Utilities.formatString(NON_VALID_EMAIL, result));
    return s;
  }


  let headers = { "Authorization": "Basic " + Utilities.base64Encode(USER + ':' + TOKEN) };
  let params = {
    "method": "GET",
    "headers": headers,
    "muteHttpExceptions": false,
    "contentType": "application/json"
  };

  let url = Utilities.formatString(URL, id);
  let createResponse = UrlFetchApp.fetch(url, params);
  let content = createResponse.getContentText();
  let tableRegEx = new RegExp("<table.*?>(.*?)</table>");
  let tableHtml = content.match(tableRegEx)[0];
  let rowRegEx = new RegExp("<tr.*?>(.*?)</tr>", "g");
  let rowsResult = tableHtml.match(rowRegEx);
  let colRegExp = new RegExp("<td.*?>(.*?)</td>", "g");
  let values = new Map();
  rowsResult.forEach(function (item) { // parsing each column of given row
    item = item.replace(/<p>|<\/p>|<p ?\/>/g, "").replace(/&nbsp;/g, " ");
    let row = [];
    [...item.matchAll(colRegExp)].forEach(item => row.push(item[1])); // Getting the group (.*?)
    row = row.filter(function (item) { return item != ""; }); // Keep non empty string only
    let key = ROW_NAMES.find(it => it == row[0]);
    if (key) {
      if (row.length > 1) {
        let records = row.slice(1);
        if (key == ROW_NAMES[2]) { // phone number
          records.forEach(function (item, index) {
            this[index] = parsePhone(item);
          }, records);
        }
        if ((key == ROW_NAMES[5]) || (key == ROW_NAMES[6])) {
          records.forEach(function (item, index) {
            this[index] = parseDate(item);
          }, records);
        }
        if ((key == ROW_NAMES[3]) || (key == ROW_NAMES[10])) {
          records.forEach(function (item, index) {
            this[index] = parseEmail(item);
          }, records);
        }
        values.set(key, records);
      }
    }

  });
  return values;
}

मैं हूँ पार्स विशिष्ट मूल्यों प्रत्येक पंक्ति के लिए, क्योंकि प्रारूप के संगम पर है अपने विशिष्ट जहाज पर संगम टेम्पलेट है ।

लागू समारोह के साथ विशिष्ट संगम आईडी:

let onboardValues = getOnboardRecords(<ID>);
console.log(JSON.stringify([...onboardValues.entries()]))

का उत्पादन होगा, निम्नलिखित आउटपुट के लिए एक ज्ञानप्राप्ति टेम्पलेट के साथ दो संसाधनों:

[["First Name",["FirstName1","FirstName2"]],["Last Name",
["LastName1","LastName2"]],["Phone Number",["xxxxxxxxx","xxxxxxxxx"]],
["E-Mail",["[email protected]","[email protected]"]],["Role",
["Delivery Manager","Sr. Developer"]],["Start Date",
["2021-11-01","2021-11-01"]],["End Date",["2021-11-30","2021-12-31"]],
["Vendor's Name",["xxxx","xxxxx"]],["Team",["xxxxxx]],
["New Resource ID",["xxxxxx","xxxxxx"]],
["New Resource Company E-mail",["[email protected]","[email protected]"]]]
2021-11-26 15:46:32

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में