首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Appengine访问Google Drive电子表格

从Appengine访问Google Drive电子表格
EN

Stack Overflow用户
提问于 2014-04-04 12:40:32
回答 2查看 39.4K关注 0票数 3

我有一个appengine应用程序,它需要访问Google Drive上的单个硬编码电子表格。

到目前为止,我已经做到了以下几点:

代码语言:javascript
运行
AI代码解释
复制
SpreadsheetService service = new SpreadsheetService("myapp");
service.setUserCredentials("myusername@gmail.com", "myhardcodedpassword");

当我今天用一个新用户尝试时,我得到了InvalidCredentialsException,尽管用户名和密码肯定是正确的。我在收件箱里收到一封电子邮件,说已经阻止了可疑的登录,似乎没有办法再次启用它们。

我也知道在源代码中硬编码密码是不好的做法。

然而,我已经在网上广泛阅读了如何启用OAuth/OAuth2来实现这一点,最终浪费了几个小时来拼凑博客、stackoverflow答案等信息片段,但都无济于事。

理想情况下,解决方案将涉及生成长期访问令牌的初始过程,然后可以将其硬编码到应用程序中。

我想要一个如何实现这一目标的明确步骤列表?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-04 14:15:52

编辑:由于谷歌重新设计了应用程序接口控制台,下面步骤的细节已经改变-请参阅评论

好的,一步一步来

OAuth

  • 转到谷歌云控制台并注册您的项目(又名Oauth Playground ),您需要记下客户端ID,并且Client

  • 转到Oauth Playground,单击齿轮图标并选择并输入您自己的application)

  • You会被提醒,您需要返回到云Console并添加Oauth Playground作为有效的回调url。因此,请执行步骤1,选择电子表格范围,如果出现提示,请单击authorize

  • Choose your Google account,然后在提示时授予身份验证。执行步骤2,单击'Exchange auth code

tokens‘

  • ,您将看到一个包含刷新box的输入框

刷新令牌相当于您的长寿用户名/密码,因此这是您要硬编码的内容(或者将其存储在您的应用程序可以检索到的安全位置)。

当您需要访问Google电子表格时,您可以调用

代码语言:javascript
运行
AI代码解释
复制
POST https://accounts.google.com/o/oauth2/token
content-type: application/x-www-form-urlencoded
client_secret=************&grant_type=refresh_token&refresh_token=1%2xxxxxxxxxx&client_id=999999999999.apps.googleusercontent.com

它将为您返回一个访问令牌

代码语言:javascript
运行
AI代码解释
复制
{
  "access_token": "ya29.yyyyyyyyyyyyyyyyyy", 
  "token_type": "Bearer", 
  "expires_in": 3600
}

无论何时访问spreadsheet API,都要将访问令牌放入http标头。

代码语言:javascript
运行
AI代码解释
复制
Authorization: Bearer ya29.yyyyyyyyyyyyyyyyy

你就完事了

票数 12
EN

Stack Overflow用户

发布于 2014-04-30 12:50:18

Pinoyyid确实提供了极好的帮助。我想继续使用Python代码,它将允许访问个人(可通过web访问) Google Drive。

这在Google App Engine中运行良好(作为web应用程序的一部分),也可以在桌面上独立运行(假设Google App Engine SDK安装在您的机器available from: [https://developers.google.com/appengine/downloads]上)。

在我的例子中,我在Pinyyid的过程中添加了https://www.googleapis.com/auth/drive作用域,因为我想访问我所有的Google Drive文件。

按照Pinoyyid的指示获取刷新令牌等之后,这个小Python脚本将获得Google驱动器上所有文件的列表:

代码语言:javascript
运行
AI代码解释
复制
import httplib2
import datetime
from oauth2client.client import OAuth2Credentials
from apiclient.discovery import build

API_KEY = 'AIz...'       # from "Key for Server Applications" from "Public API Access" section of Google Developers Console
access_token = "ya29..." # from Piinoyyid's instructions
refresh_token = "1/V..." # from Piinoyyid's instructions
client_id = '654....apps.googleusercontent.com' # from "Client ID for web application" from "OAuth" section of Google Developers Console
client_secret = '6Cl...' # from "Client ID for web application" from "OAuth" section of Google Developers Console
token_expiry = datetime.datetime.utcnow() - datetime.timedelta(days=1)
token_uri = 'https://accounts.google.com/o/oauth2/token'
user_agent = 'python urllib (I reckon)'

def main():
    service = createDrive()
    dirlist = service.files().list(maxResults=30)
    print 'dirlist', dirlist
    result = dirlist.execute()
    print 'result', result

def createDrive():
    credentials = OAuth2Credentials(access_token, client_id, client_secret, refresh_token, token_expiry, token_uri, user_agent)
    http = httplib2.Http()
    http = credentials.authorize(http)
    return build('drive', 'v2', http=http, developerKey=API_KEY)

main()

我非常感谢在解决这个问题的过程中提供步骤的所有人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22863104

复制
相关文章
Excel 如何保存文件为 UTF-8 CSV 格式
如果你的 CSV 在 Excel 在默认打开的时候是简体中文的,但是你在保存的时候没有保存为 UTF-8 的格式,那么你文件中的简体中文可能会显示为乱码。
HoneyMoose
2020/09/03
3.8K0
Excel 如何保存文件为 UTF-8 CSV 格式
SparkSQL保存DataFrame为CSV文件
ReadShipMMSITwo package com.xtd.file import java.io.{ BufferedWriter, File, FileWriter} import java.util import com.xtd.entity.RouteLine import com.xtd.example.SparkOpenGIS import org.apache.spark.rdd.RDD import org.apache.spark.sql.{DataFrame, Dataset,
静谧星空TEL
2021/04/27
2.7K0
SparkSQL保存DataFrame为CSV文件
解决CSV文件中长数字以科学记数格式保存问题
源文件(xlsx格式)中的单元格格式设置为「文本」,默认为「常规」,这是因为「常规」格式存在: 纯数字(位数 ≥ 12)自动转换为「科学记数」 格式;如 123456789012 转化为 1.23457+11 输入的内容含有数字与字母e,且e处在第三位上,e后面为纯数字,也会自动转换为 「科学记数」格式,如输入颜色值 123e45 会转换为 1.23E+47, 输入1234e5 会转换为 1.23E+08 以「文本」格式保存的csv文件,用Excel格式打开,看到的仍可能是「科学记数」的方式,但以「文本编
Jace
2018/08/01
6.1K0
MySQL 查询结果保存为CSV文件
执行后,会把指定表中记录数据导出到c:/test.csv文件中。每个字段以,(逗号)分隔,字段内容是字符串的以”(双引号)包围,每条记录使用\r\n换行。如图所示
前端皮皮
2020/11/26
5.5K0
MySQL 查询结果保存为CSV文件
什么是CSV文件以及如何打开CSV文件格式
大家好,又见面了,我是你们的朋友全栈君。 What is a .csv file? CSV stands for Comma Separated Values. A CSV file is a pla
全栈程序员站长
2022/09/16
6.6K0
Matlab保存数据到csv文件的方法分享
一个同学咨询了一个问题,如何把matlab变量区的数据保存到csv文件里面,故此分享一下Matlab保存数据到csv文件的方法。csv其实也是一个txt,只不过csv是带特定格式的txt而已,举个例子,编辑一个txt文件,内容如下
用户9925864
2022/07/27
6.3K0
Matlab保存数据到csv文件的方法分享
csv文件格式说明[通俗易懂]
csv文件应用很广泛,历史也很悠久。有很多种类型的csv格式,常用的是rfc 4180定义的格式。
全栈程序员站长
2022/09/20
1.4K0
【python】使用csv库以字典格式读写csv文件
1、使用csv.DictWriter()写入字典格式的数据 import csv with open('test.csv', 'w', newline='') as csvfile: fieldnames = ['first_name', 'last_name'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() writer.writerow({'first
西西嘛呦
2020/08/26
1.8K0
【python】使用csv库以字典格式读写csv文件
短短几行代码将数据保存CSV和MySQL
数据我就按比较常见的列表嵌套字典来演示了,这种数据结构也是在各个场景下经常用到的数据结构[{},{},{}…]
福贵
2020/02/17
2.1K0
如何使用Python将图像转换为NumPy数组并将其保存到CSV文件?
Python 是一种功能强大的编程语言,具有大量的库和模块。其中一个库是 NumPy,它用于数值计算和处理大型多维数组和矩阵。另一个用于Python图像处理的流行库是Pillow,它是Python Imaging Library(PIL)的一个分支。
很酷的站长
2023/08/11
9110
如何使用Python将图像转换为NumPy数组并将其保存到CSV文件?
爬取豆瓣电影详细数据,保存为CSV文件
爬取时间:2020-03-12 爬取难度:★★☆☆☆☆ 请求链接:https://movie.douban.com/top250 以及每部电影详情页,图片 爬取目标:爬取榜单上每一部电影详情页的数据,保存为 CSV 文件 涉及知识:request、urllib、bs4、CSV 和二进制数据储存、列表操作 一、循环爬取网页模板 打开豆瓣电影top榜单,请求地址为:https://movie.douban.com/top250 通关观察,我们可以发现每页展示25条电影信息,多次翻页我们可以观察到u
不温卜火
2020/10/28
5.5K0
爬取豆瓣电影详细数据,保存为CSV文件
python中如何打开csv文件_python如何读取csv文件
python如何读取csv文件,我们这里需要用到python自带的csv模块,有了这个模块读取数据就变得非常容易了。
全栈程序员站长
2022/09/16
8.3K0
python中如何打开csv文件_python如何读取csv文件
Python读写CSV格式文件
CSV(Comma Separated Values)格式的文件常用于电子表格和数据库中内容的导入和导出。Python标准库csv提供的reader、writer对象和DictReader和DictWriter类很好地支持了CSV格式文件的读写操作。 >>> import csv >>> with open('test.csv', 'w', newline='') as fp: test_writer = csv.writer(fp, delimiter=' ', quotechar='"') #创建wr
Python小屋屋主
2018/04/16
1.1K0
python 读写csv格式的文件
python在它的标准库中包含了csv模块。 例子环境 python3.4 win7 32位
py3study
2020/01/10
9700
Python操作CSV格式文件
参考文档:https://docs.python.org/3.6/library/csv.html
全栈程序员站长
2022/09/16
1K0
Python操作CSV格式文件
CSV文件
CSV文件:Comma-Separated Values,中文叫,逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分割。每条记录由字段组成,字段间的分隔符是其他字符或者字符串。所有的记录都有完全相同的字段序列,相当于一个结构化表的纯文本形式。 用文本文件、EXcel或者类似与文本文件的都可以打开CSV文件。
狼啸风云
2020/02/11
2.7K0
导出CSV格式
/** * 导出数据格式为csv */ function export_to_csv($data = array(), $title = array(), $filename=null) { if(empty($filename)) { $filename = date('Ymd'); } header("Content-type:text/csv"); header("Accept-Ranges:bytes"); header("Content
苦咖啡
2018/04/28
1.9K0
一、通过requests库爬取数据并保存为csv文件
此系列第一篇呀 一、选择数据源 网址:https://wp.m.163.com/163/page/news/virus_report/index.html?nw=1&anw=1 好了知道上面的我们就可
不温卜火
2020/10/28
1.6K0
一、通过requests库爬取数据并保存为csv文件
点击加载更多

相似问题

TypeError:“tuple”对象在尝试调用方法时不可调用

10

类方法TypeError "Int对象不可调用“

16

TypeError:对象不可调用

21

TypeError:“a”对象不可调用

11

TypeError TypeError:“NoneType”对象不可调用

10
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档