我正在嘗試通過他們的 API 從 Slush Pool 匯入挖掘資料。我正在使用一個名為 ImportJSON 的 Google 表格腳本,可以在此處找到。此代碼不包含 API 密鑰或訪問令牌的功能,因此我添加了一個基于來自這篇文章的資訊的包裝器。這個包裝器是在原始 ImportJSON 檔案的第 255 行添加的。
/**
*
* Wrapper
*
* @param {url} the URL to a http basic auth protected JSON feed
* @param {api_key} the api_key for authentication
* @param {query} always = ""
* @param {parseOptions} a comma-separated list of options that may alter processing of the data (optional)
*/
function ImportJSON_words(url, api_key, query, parseOptions) {
var header = {
headers: {
"X-SlushPool-Auth-Token": api_key
}
}
return ImportJSONAdvanced(url, header, query, parseOptions, includeXPath_, defaultTransform_)
}
包含該行"X-SlushPool-Auth-Token": api_key是為了滿足Slush Pool 的 API 身份驗證。他們特別說
訪問組態檔令牌必須包含在名為 SlushPool-Auth-Token 或 X-SlushPool-Auth-Token 的 HTTP 標頭欄位中,以驗證您的請求。
他們還使用 cURL 給出了這個 Python 示例:
curl https://slushpool.com/stats/json/btc/ -H "SlushPool-Auth-Token: <your access token>"
要匯入 JSON 檔案,我在 Google 表格單元格中鍵入以下公式。
=ImportJSON_words("https://slushpool.com/stats/json/btc/","xxxxxxxxxx","","noTruncate")
URL 由 Slush Pool 提供,x 代表我的 API 密鑰,查詢欄位為空,“noTruncate”是 ImportJSON 檔案中給出的決議選項之一,可防止資料被縮短。
我收到#ERROR,即公式決議錯誤,我沒有看到任何匯入的資料。我不確定這個 API 訪問令牌哪里出錯了。任何意見,將不勝感激。
uj5u.com熱心網友回復:
公式決議錯誤通常是因為存在 Google 表格公式語法錯誤。這與自定義函式的腳本無關。
仔細檢查電子表格區域是否正確以及該區域的小數分隔符。如果小數點分隔符是
.你的公式應該有一個,作為函式引數分隔符,否則他們應該使用;檢查您的公式是否不包括:
- 彎引號而不是海峽引號
- 從 Wordpress / CMS 生成的網頁進行復制粘貼時可能無意添加的任何隱藏字符。
- 一個類似字符的括號而不是括號(與上述相同的原因)
檢查公式的每個引數是否設定正確。一種方法是為每個引數制定一個公式,即
="https://slushpool.com/stats/json/btc/"
="xxxxxxxxxx"
等等。嘗試在禁用所有擴展程式的隱身模式下使用 Google 表格。
雖然公式決議錯誤與腳本無關,但如果以前的所有方法都不起作用......
雖然自定義函式名稱的限制很少,但請嘗試更改函式名稱(洗掉下劃線,確保不要使用保留名稱,即簡單觸發器函式名稱、JavaScript 保留字、Google 表格函式名稱)
從頭開始可能是個好主意,但不要修改原始的 IMPORTJSON .gs 檔案,而是添加一個新的 .gs 檔案并將其添加到您的包裝器中。這是因為有時一個電子表格會做“奇怪”的事情,而其他電子表格則不會。還包括
@customfunction在自定義函式的 JSDoc 注釋中。
uj5u.com熱心網友回復:
為了在 Google 表格腳本中創建自定義函式,您必須遵循特定的語法。如果您嘗試在作業表中使用該功能時未遵循語法,Google 的自動完成功能將不會顯示它。必須修改上述包裝器以包含returnandcustomfunction引數。添加這些引數后,Google 在作業表中識別了該函式,并且腳本的其余部分正確運行。
/**
*
* Wrapper
*
* @param {url} the URL to a http basic auth protected JSON feed
* @param {api_key} the api_key for authentication
* @param {query} always = ""
* @param {parseOptions} a comma-separated list of options that may alter processing of the data (optional)
*
* @return a two-dimensional array containing the data, with the first row containing headers
* @customfunction
**/
function ImportJSON_words(url, api_key, query, parseOptions) {
var header = {
headers: {
"X-SlushPool-Auth-Token": api_key
}
}
return ImportJSONAdvanced(url, header, query, parseOptions, includeXPath_, defaultTransform_)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/421442.html
標籤:
