2016-04-26 27 views
3

私はPythonとPyDriveを使ってプログラムを作った。 プログラムは画像をキャプチャし、Googleドライブのフォルダにアップロードします。 これは私の認証とアップロードのための基本的なコードです:PyDriveにユーザーの認証を記憶させる方法はありますか?

gauth = GoogleAuth() 
drive = GoogleDrive(gauth) 
file_image = drive.CreateFile({"parents": [{"kind": "drive#fileLink","id": upload_folder_id}]}) 
file_image.SetContentFile(imageName) #Set the content to the taken image 
file_image.Upload() # Upload it 

私はそれが私を認証したいプログラムを実行して任意の時間。認証を覚えておく方法はありますか?

+0

私はそうは思わない、webinterfaceで覚えている認証はクッキーによって解決されます。 – linusg

+0

設定ファイルからユーザ名、パスワードの組み合わせでログインすることは可能ですか? (そのようにすれば、その設定ファイルを一度作成するだけで済みます) – Gabe

+0

はい、それが解決策になります。 Py 2.xまたは3.xを使用していますか? – linusg

答えて

0

Googleドライブのウェブインターフェイスでは、Cookieを使用して認証を覚えています。設定ファイルからログイン情報を読み、スクリプトを使用するたびにログインすることをお勧めします。 eval()を使用してもかまいませんが、eval()が悪であることを覚えておいてください:)(あなただけがスクリプトを使用していれば大丈夫です)。

サンプル:。

スクリプトが入っている同じフォルダ内にlogin.confと呼ばれるファイル(または類似)を作成し、PUTこのことで:

{"user": "username", "pass": "password"} 

あなたの本当の価値を持つ"username""pasword"を交換し、 "はそのままにしてください。スクリプトでは、このようにそれを実行します。

with open("login.conf", "r") as f: 
    content = eval(f.read()) 

username = content["user"] 
password = content["pass"] 

# Now do login using these two variables 

より安全なオプションがConfigParser(Pythonの3.xではconfigparser)の利用となります。

EDIT:

Googleドライブへのログインがafileをスクリプトのディレクトリにあるclient_secrets.jsonと呼ばれる必要がありように見えます。あなたが持っている場合は、次のようにログインしてください:

gauth = GoogleAuth() 
gauth.LocalWebserverAuth() 

gauth.LoadCredentialsFile("credentials.txt") 
if gauth.credentials is None: 
    gauth.LocalWebserverAuth() 
elif gauth.access_token_expired: 
    gauth.Refresh() 
else: 
    gauth.Authorize() 

gauth.SaveCredentialsFile("credentials.txt") 

drive = GoogleDrive(gauth) 

これは役に立ちます。

+0

ありがとう!私にとって明らかではない点のもう1つは、この情報を使ってGoogleドライブにログインする方法です。 PyDriveはどのように可能ですか? – Gabe

+0

私はPyDriveを一度も使用していませんが、ドキュメントには 'client_secrets.json'というファイルが必要です。あなたはそれを手に入れましたか? – linusg

+0

はい、GoogleドライブAPIの秘密キーを保存するファイルです。 – Gabe

関連する問題