菜鸟教程小白 发表于 2022-12-11 20:49:16

ios - 在 Swift 中写入 Google 表格


                                            <p><p>我真的很困惑如何写入公开的 Excel 表格。到目前为止,我已经下载了 <em>Alamofire</em> 和 <em>GoogleAPIClientForREST</em> cocoapods。所以我想知道,如果我想写信给工作表,我首先需要实现一个谷歌登录,还是我可以使用 <em>Alamofire</em> 发送数据。我非常迷茫,所以如果有人可以帮助我,那就太好了。</p>

<p>Google 表格:<a href="https://docs.google.com/spreadsheets/d/1zJR0uk6Pb6BuxJihFyxwe4ipQdBY4E9FFR74geBj8p0/edit#gid=0" rel="noreferrer noopener nofollow">https://docs.google.com/spreadsheets/d/1zJR0uk6Pb6BuxJihFyxwe4ipQdBY4E9FFR74geBj8p0/edit#gid=0</a> </p>

<pre><code>func makeAndSendRequest() {
    let baseUrl = &#34;https://sheets.googleapis.com/v4/spreadsheets&#34;
    let spreadsheetId = &#34;1zJR0uk6Pb6BuxJihFyxwe4ipQdBY4E9FFR74geBj8p0&#34;
    let params = [&#34;valueInputOption&#34;: &#34;RAW&#34;]
    let range = &#34;Studen!A3:B3&#34;
    //need to add params
    let url = baseUrl + &#34;/&#34; + spreadsheetId + &#34;/values/&#34; + range + &#34;/valueInputOption=RAW/&#34;

    let fullUrl = URL(string: url)!

    //my values
    let requestParams = [
      &#34;values&#34;: [
            1,
            2
      ]
    ]


    //my auth is after Bearer so &#34;Bearer 901390&#34;
    let header = [&#34;Authorization&#34;:&#34;Bearer &#34;]
    let requestURL = &#34;https://sheets.googleapis.com/v4/spreadsheets/\(spreadsheetId)/values/\(range)?valueInputOption=RAW&#34;
    let req = Alamofire.request(requestURL, method: .put, parameters: requestParams, encoding: JSONEncoding.default,headers: header)
    req.responseJSON { response in debugPrint(response) }

}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>尝试先解决这个问题。</p>

<p><code>valueInputOption</code> 为查询参数,见:<a href="https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update" rel="noreferrer noopener nofollow">https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update</a> </p>

<p>你的网址至少应该是:</p>

<p><code>让 url = baseUrl + "/"+ spreadsheetId + "/values/"+ range + "?valueInputOption=RAW"</code></p>

<p>接下来您需要修正您的请求正文,此处需要每个文档的范围:<a href="https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update" rel="noreferrer noopener nofollow">https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update</a> </p>

<p><code>
{
“范围”:“A3:B3”,
“值(value)观”:[
    [
      1、
      2
    ]
]
}
</code></p>

<p>此范围应与查询参数中的范围相同,例如 <code>Sheet1!:A3:B3</code> 与查询参数中的范围相同。</p>

<p>注意,它以工作表名称开头,不应该是“studen”</p>

<p>我在同一页面上使用了 Playground 工具,并且能够调用 api 来更改电子表格中的数据。 </p>

<p>最后我得到 200 响应代码和以下 json:
<code>
{
“电子表格ID”:“1zJR0uk6Pb6BuxJihFyxwe4ipQdBY4E9FFR74geBj8p0”,
"updatedRange": "Sheet1!A3:B3",
“更新行”:1,
“更新的列”:2,
“更新的细胞”:2
}
</code></p>

<p>----- 编辑 -----
如您所问,API 需要 Oauthtoken ,处理此问题的框架实际上称为 <code>G Suite</code></p>

<p>请在此处找到指南:
<a href="https://developers.google.com/gsuite/guides/ios" rel="noreferrer noopener nofollow">https://developers.google.com/gsuite/guides/ios</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 Swift 中写入 Google 表格,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/53293814/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/53293814/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 Swift 中写入 Google 表格