[{"data":1,"prerenderedAt":487},["ShallowReactive",2],{"navigation-id":3,"page-\u002Fid\u002Fauth-modes\u002Fservice-account":133,"\u002Fid\u002Fauth-modes\u002Fservice-account-surround":482},[4],{"title":5,"path":6,"stem":7,"children":8,"page":26},"Id","\u002Fid","id",[9,27,48,77,90,96],{"title":10,"path":11,"stem":12,"children":13,"page":26},"Panduan Memulai","\u002Fid\u002Fgetting-started","id\u002F1.getting-started",[14,18,22],{"title":15,"path":16,"stem":17},"Pengenalan","\u002Fid\u002Fgetting-started\u002Fintroduction","id\u002F1.getting-started\u002F1.introduction",{"title":19,"path":20,"stem":21},"Instalasi","\u002Fid\u002Fgetting-started\u002Finstallation","id\u002F1.getting-started\u002F2.installation",{"title":23,"path":24,"stem":25},"Referensi Konfigurasi","\u002Fid\u002Fgetting-started\u002Fconfiguration","id\u002F1.getting-started\u002F3.configuration",false,{"title":28,"path":29,"stem":30,"children":31,"page":26},"Composables","\u002Fid\u002Fcomposables","id\u002F2.composables",[32,36,40,44],{"title":33,"path":34,"stem":35},"useGSheet","\u002Fid\u002Fcomposables\u002Fuse-gsheet","id\u002F2.composables\u002F1.use-gsheet",{"title":37,"path":38,"stem":39},"useGSheetAsObject","\u002Fid\u002Fcomposables\u002Fuse-gsheet-as-object","id\u002F2.composables\u002F2.use-gsheet-as-object",{"title":41,"path":42,"stem":43},"useGSheetRow","\u002Fid\u002Fcomposables\u002Fuse-gsheet-row","id\u002F2.composables\u002F3.use-gsheet-row",{"title":45,"path":46,"stem":47},"useGSheetWrite","\u002Fid\u002Fcomposables\u002Fuse-gsheet-write","id\u002F2.composables\u002F4.use-gsheet-write",{"title":49,"path":50,"stem":51,"children":52,"page":26},"Mode Autentikasi","\u002Fid\u002Fauth-modes","id\u002F3.auth-modes",[53,57,61,65,69,73],{"title":54,"path":55,"stem":56},"Gambaran Umum Mode Autentikasi","\u002Fid\u002Fauth-modes\u002Foverview","id\u002F3.auth-modes\u002F1.overview",{"title":58,"path":59,"stem":60},"Mode GViz (Google Visualization API)","\u002Fid\u002Fauth-modes\u002Fgviz","id\u002F3.auth-modes\u002F2.gviz",{"title":62,"path":63,"stem":64},"Mode Ekspor CSV","\u002Fid\u002Fauth-modes\u002Fcsv","id\u002F3.auth-modes\u002F3.csv",{"title":66,"path":67,"stem":68},"Mode Google Apps Script","\u002Fid\u002Fauth-modes\u002Fappscript","id\u002F3.auth-modes\u002F4.appscript",{"title":70,"path":71,"stem":72},"Mode API Key","\u002Fid\u002Fauth-modes\u002Fapikey","id\u002F3.auth-modes\u002F5.apikey",{"title":74,"path":75,"stem":76},"Mode Service Account","\u002Fid\u002Fauth-modes\u002Fservice-account","id\u002F3.auth-modes\u002F6.service-account",{"title":78,"path":79,"stem":80,"children":81,"page":26},"Integrasi AI","\u002Fid\u002Fai","id\u002F4.ai",[82,86],{"title":83,"path":84,"stem":85},"Agent Skills (Integrasi AI)","\u002Fid\u002Fai\u002Fagent-skills","id\u002F4.ai\u002F1.agent-skills",{"title":87,"path":88,"stem":89},"Model Context Protocol (MCP)","\u002Fid\u002Fai\u002Fmcp","id\u002F4.ai\u002F2.mcp",{"title":91,"path":92,"stem":93,"children":94},"Demo Langsung","\u002Fid\u002Fdemos","id\u002F5.demos\u002Findex",[95],{"title":91,"path":92,"stem":93},{"title":97,"path":98,"stem":99,"children":100,"page":26},"Tutorial Praktis","\u002Fid\u002Ftutorials","id\u002F6.tutorials",[101,105,109,113,117,121,125,129],{"title":102,"path":103,"stem":104},"Gambaran Umum Tutorial","\u002Fid\u002Ftutorials\u002Foverview","id\u002F6.tutorials\u002F0.overview",{"title":106,"path":107,"stem":108},"Tutorial Apps Script Web App","\u002Fid\u002Ftutorials\u002Fappscript-tutorial","id\u002F6.tutorials\u002F1.appscript-tutorial",{"title":110,"path":111,"stem":112},"Tutorial Langkah demi Langkah Lengkap","\u002Fid\u002Ftutorials\u002Fstep-by-step","id\u002F6.tutorials\u002F1.step-by-step",{"title":114,"path":115,"stem":116},"Tutorial Analytics GViz SQL","\u002Fid\u002Ftutorials\u002Fgviz-sql-tutorial","id\u002F6.tutorials\u002F2.gviz-sql-tutorial",{"title":118,"path":119,"stem":120},"Tutorial Katalog Produk CSV","\u002Fid\u002Ftutorials\u002Fcsv-catalog-tutorial","id\u002F6.tutorials\u002F3.csv-catalog-tutorial",{"title":122,"path":123,"stem":124},"Tutorial Inventaris API Key","\u002Fid\u002Ftutorials\u002Fapikey-tutorial","id\u002F6.tutorials\u002F4.apikey-tutorial",{"title":126,"path":127,"stem":128},"Tutorial HR & Payroll Service Account","\u002Fid\u002Ftutorials\u002Fservice-account-tutorial","id\u002F6.tutorials\u002F5.service-account-tutorial",{"title":130,"path":131,"stem":132},"Tutorial Sheet Routing Map","\u002Fid\u002Ftutorials\u002Fsheets-routing-tutorial","id\u002F6.tutorials\u002F6.sheets-routing-tutorial",{"id":134,"title":74,"body":135,"description":476,"extension":477,"icon":478,"links":478,"meta":479,"navigation":478,"path":75,"seo":480,"stem":76,"__hash__":481},"docs_id\u002Fid\u002F3.auth-modes\u002F6.service-account.md",{"type":136,"value":137,"toc":472},"minimark",[138,142,147,173,202,206,468],[139,140,141],"p",{},"Mode Service Account menggunakan kredensial GCP Service Account (client email & private key JSON) untuk mengakses Google Sheets privat secara aman.",[143,144,146],"h2",{"id":145},"setup","Setup",[148,149,150,154,157,165],"ol",{},[151,152,153],"li",{},"Buat Service Account pada GCP Console.",[151,155,156],{},"Unduh file kunci JSON.",[151,158,159,160,164],{},"Bagikan Google Sheet privat kamu ke alamat email Service Account sebagai ",[161,162,163],"strong",{},"Editor",".",[151,166,167,168,172],{},"Konfigurasikan file ",[169,170,171],"code",{},".env",":",[174,175,180],"pre",{"className":176,"code":177,"filename":171,"language":178,"meta":179,"style":179},"language-env shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","GSHEET_SPREADSHEET_ID=spreadsheet-id-privat-kamu\nGSHEET_CLIENT_EMAIL=service-account-kamu@project.iam.gserviceaccount.com\nGSHEET_PRIVATE_KEY=\"-----BEGIN PRIVATE KEY-----\\nKUNCI_KAMU\\n-----END PRIVATE KEY-----\\n\"\n","env","",[169,181,182,190,196],{"__ignoreMap":179},[183,184,187],"span",{"class":185,"line":186},"line",1,[183,188,189],{},"GSHEET_SPREADSHEET_ID=spreadsheet-id-privat-kamu\n",[183,191,193],{"class":185,"line":192},2,[183,194,195],{},"GSHEET_CLIENT_EMAIL=service-account-kamu@project.iam.gserviceaccount.com\n",[183,197,199],{"class":185,"line":198},3,[183,200,201],{},"GSHEET_PRIVATE_KEY=\"-----BEGIN PRIVATE KEY-----\\nKUNCI_KAMU\\n-----END PRIVATE KEY-----\\n\"\n",[143,203,205],{"id":204},"contoh-penggunaan","Contoh Penggunaan",[174,207,212],{"className":208,"code":209,"filename":210,"language":211,"meta":179,"style":179},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst { data: orders, refresh } = await useGSheetAsObject('A1:D50', { sheet: 'Orders' })\nconst { append } = useGSheetWrite({ sheet: 'Orders' })\n\nconst saveOrder = async () => {\n  await append('A1:D1', [['ORD-101', 'Acme', '99.00', 'Paid']])\n  await refresh()\n}\n\u003C\u002Fscript>\n","pages\u002Forders.vue","vue",[169,213,214,246,317,352,359,381,441,452,458],{"__ignoreMap":179},[183,215,216,220,224,228,231,234,237,241,243],{"class":185,"line":186},[183,217,219],{"class":218},"sMK4o","\u003C",[183,221,223],{"class":222},"swJcz","script",[183,225,227],{"class":226},"spNyl"," setup",[183,229,230],{"class":226}," lang",[183,232,233],{"class":218},"=",[183,235,236],{"class":218},"\"",[183,238,240],{"class":239},"sfazB","ts",[183,242,236],{"class":218},[183,244,245],{"class":218},">\n",[183,247,248,251,254,257,259,263,266,269,272,275,279,283,286,289,292,294,296,298,301,303,306,309,311,314],{"class":185,"line":192},[183,249,250],{"class":226},"const",[183,252,253],{"class":218}," {",[183,255,256],{"class":222}," data",[183,258,172],{"class":218},[183,260,262],{"class":261},"sTEyZ"," orders",[183,264,265],{"class":218},",",[183,267,268],{"class":261}," refresh ",[183,270,271],{"class":218},"}",[183,273,274],{"class":218}," =",[183,276,278],{"class":277},"s7zQu"," await",[183,280,282],{"class":281},"s2Zo4"," useGSheetAsObject",[183,284,285],{"class":261},"(",[183,287,288],{"class":218},"'",[183,290,291],{"class":239},"A1:D50",[183,293,288],{"class":218},[183,295,265],{"class":218},[183,297,253],{"class":218},[183,299,300],{"class":222}," sheet",[183,302,172],{"class":218},[183,304,305],{"class":218}," '",[183,307,308],{"class":239},"Orders",[183,310,288],{"class":218},[183,312,313],{"class":218}," }",[183,315,316],{"class":261},")\n",[183,318,319,321,323,326,328,330,333,335,338,340,342,344,346,348,350],{"class":185,"line":198},[183,320,250],{"class":226},[183,322,253],{"class":218},[183,324,325],{"class":261}," append ",[183,327,271],{"class":218},[183,329,274],{"class":218},[183,331,332],{"class":281}," useGSheetWrite",[183,334,285],{"class":261},[183,336,337],{"class":218},"{",[183,339,300],{"class":222},[183,341,172],{"class":218},[183,343,305],{"class":218},[183,345,308],{"class":239},[183,347,288],{"class":218},[183,349,313],{"class":218},[183,351,316],{"class":261},[183,353,355],{"class":185,"line":354},4,[183,356,358],{"emptyLinePlaceholder":357},true,"\n",[183,360,362,364,367,369,372,375,378],{"class":185,"line":361},5,[183,363,250],{"class":226},[183,365,366],{"class":261}," saveOrder ",[183,368,233],{"class":218},[183,370,371],{"class":226}," async",[183,373,374],{"class":218}," ()",[183,376,377],{"class":226}," =>",[183,379,380],{"class":218}," {\n",[183,382,384,387,390,392,394,397,399,401,404,406,409,411,413,415,418,420,422,424,427,429,431,433,436,438],{"class":185,"line":383},6,[183,385,386],{"class":277},"  await",[183,388,389],{"class":281}," append",[183,391,285],{"class":222},[183,393,288],{"class":218},[183,395,396],{"class":239},"A1:D1",[183,398,288],{"class":218},[183,400,265],{"class":218},[183,402,403],{"class":222}," [[",[183,405,288],{"class":218},[183,407,408],{"class":239},"ORD-101",[183,410,288],{"class":218},[183,412,265],{"class":218},[183,414,305],{"class":218},[183,416,417],{"class":239},"Acme",[183,419,288],{"class":218},[183,421,265],{"class":218},[183,423,305],{"class":218},[183,425,426],{"class":239},"99.00",[183,428,288],{"class":218},[183,430,265],{"class":218},[183,432,305],{"class":218},[183,434,435],{"class":239},"Paid",[183,437,288],{"class":218},[183,439,440],{"class":222},"]])\n",[183,442,444,446,449],{"class":185,"line":443},7,[183,445,386],{"class":277},[183,447,448],{"class":281}," refresh",[183,450,451],{"class":222},"()\n",[183,453,455],{"class":185,"line":454},8,[183,456,457],{"class":218},"}\n",[183,459,461,464,466],{"class":185,"line":460},9,[183,462,463],{"class":218},"\u003C\u002F",[183,465,223],{"class":222},[183,467,245],{"class":218},[469,470,471],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":179,"searchDepth":186,"depth":192,"links":473},[474,475],{"id":145,"depth":192,"text":146},{"id":204,"depth":192,"text":205},"Akses Read & Write tingkat enterprise untuk Google Sheets privat yang tidak dibagikan publik.","md",null,{},{"title":74,"description":476},"VMWG7DggRX6BKLJXZFLGQJICTdH41MBTMzA3ojsb4lQ",[483,485],{"title":70,"path":71,"stem":72,"description":484,"children":-1},"Integrasi resmi Google Sheets API v4 menggunakan GCP API Key.",{"title":83,"path":84,"stem":85,"description":486,"children":-1},"Implementasi spesifikasi Agent Skills RFC bawaan untuk asisten pengkodean AI.",1786088226563]