我刚开始使用Gspread,并且正在尝试访问我的google驱动器中的一个google docs电子表格。我按照说明操作,转到Google API控制台并创建了一个JSON文件。当我运行此代码时,我没有错误:
import gspread
import json
from oauth2client.client import SignedJwtAssertionCredentials
json_key = json.load(open("mwsSearch-b3d5d5d9c956.json"))
scope = ["https://spreadsheets.google.com/feeds"]
credentials = SignedJwtAssertionCredentials(json_key['client_email'], bytes(json_key['private_key'], 'utf-8'), scope=scope)
gc = gspread.authorize(credentials)
我的下一步是尝试打开Google电子表格。我创建了一个标题为" Mike"在我的Google云端硬盘的主文件夹中,但尝试通过以下方式访问它:
gc.open_by_url("https://docs.google.com/spreadsheets/d/1HH7BKsnB2Rd5rlAr7S2H3avUtO4GkqeWrXJfYKKooNA/edit#gid=0")
gc.open("Mike")
gc.open_by_key("1HH7BKsnB2Rd5rlAr7S2H3avUtO4GkqeWrXJfYKKooNA")
所有这三个都返回相同的错误:
gspread.exceptions.SpreadsheetNotFound
我在想,也许api访问是通过项目链接到另一个云存储,而不是我个人的谷歌驱动器,这就是为什么它不访问它。如果有更多经验的人请指出我正在做错的方向。所有帮助表示赞赏。谢谢。
答案 0 :(得分:4)
您需要将使用JSON密钥创建的电子邮件添加到您要访问的电子表格中。它将像9876 ..... @ developer.gserviceaccount.com。您将其视为"客户电子邮件"在您的JSON文件和凭据页面中。
答案 1 :(得分:1)
查看http://gspread.readthedocs.org/en/latest/oauth2.html
转到Google表格并使用您在json_key [' client_email']中的电子邮件分享您的电子表格。否则,在尝试打开它时会收到SpreadsheetNotFound异常。
答案 2 :(得分:1)
import {ReactInstance} from 'react-360-web';
function init(bundle, parent, options = {}) {
const r360 = new ReactInstance(bundle, parent, {
// Add custom options here
fullScreen: true,
...options,
});
// Render your app content to the default cylinder surface
r360.renderToSurface(
r360.createRoot('Hello360', { /* initial props */ }),
r360.getDefaultSurface()
);
}
window.React360 = {init};
has been deprecated。