mLC*_*mLC 2 python google-api google-drive-api google-oauth pydrive
我的任务是连接到Google Drive API(借助PyDrive模块)并下载一些文件。我以某种方式设法使它在本地计算机上正常工作-我在Google控制台上注册了“应用” ,下载了client_secret.json,运行了脚本,弹出了身份验证窗口,我使用自己的Google帐户登录,并且可以访问云端硬盘,一切都没问题。
现在,我想在服务器上使用我的脚本,而我基本上不知道该怎么做。我向提供者提交了支持票,他们的答案是:
您需要获取以下内容:
{
"#authJson": "{"access_token":"XXX","token_type":"Bearer","expires_in":3600,"refresh_token":"YYY","created":1457455916}",
"#appKey": "key",
"#appSecret": "secret"
}
Run Code Online (Sandbox Code Playgroud)
这里#authJson是“whoevers驱动器-你-要对接入的授权和的结果,#appKey一个#appSecret来自的OAuth。
我不知道怎么得到这些。我知道如何下载client_secret.json。所以问题是:如何获得这些?我什至在正确的轨道上吗?或者需要其他方法。
理想的最终状态是:为access_token我的Google云端硬盘提供某种永久性,然后可以将其传递给应用程序(例如,作为字符串参数)。然后,该应用将连接到我的云端硬盘并下载所需的文件。
编辑:请参阅有关预授权服务器应用程序的编辑。
您正在寻找的是CommandLineAuth()PyDrive。
您的代码应如下所示:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
ga = GoogleAuth()
ga.CommandLineAuth() # This line in your code currently calls LocalWebserverAuth()
drive = GoogleDrive(self.ga)
# etc.
Run Code Online (Sandbox Code Playgroud)
在服务器上运行脚本时,它将要求您将链接复制粘贴到本地浏览器中。使用特定帐户登录后,系统会为您提供看似随机的字母和数字字符串。将该字符串粘贴到控制台中,就可以了。
由于您可能不想在每次脚本运行时都执行此操作,因此请考虑将settings.yaml文件添加到项目中,这样可以保存登录凭据。设置方法的详细信息可以在docs中找到。
编辑:如果要在不进行进一步身份验证的情况下将PyDrive脚本分发到任何服务器,则必须:
client_secret_xxxxx.jsonsettings.yaml文件添加到您的项目,请参见此模板。确保save_credentials_file:已设置,例如creds.jsonclient-secret从中复制client_secret_xxxx.json到settings.yaml文件中。creds.json)settings.yaml文件和c)生成的creds.json文件的整个目录复制到远程计算机。确保相对路径不变。注意:Google Drive API附带有API调用限制,可防止在100秒内进行100次以上的调用。
| 归档时间: |
|
| 查看次数: |
1189 次 |
| 最近记录: |