2017-08-23 8 views
1

私はかなり新しい開発者です。 OAuth2の経験はありません。その説明を読むたびに、実際の意味での意味を理解できないようです。GoogleシートAPIとPythonのユーザー認証はどのように機能しますか?

ここに私が達成しようとしているものがあります。私はPythonで任意のGoogleシートを読み込んでデータを操作できるアプリを作成しています。 Googleの公式ガイドhereに続き、quickstart.pyの例を設定しました。それは正常に動作し、問題なく他のことを行うためにファイルを拡張できました。クイックスタートガイドで作成された特定のファイル設定を維持しています。

ここで私は混乱しています。他のユーザーが独自のスプレッドシートとGoogleアカウントで自分のアプリを使用できるようにしたいとします。アプリが動作するにはclient_secret.jsonファイルが必要ですか?しかし、それは秘密にされているはずです(それは明らかに名前が示唆するように)ではありませんか?自分の資格情報を作成する必要があります。最初に資格情報を作成するためにファイルclient_secret.jsonは必要ありませんか?これはどのように機能しますか?

誰かがPythonスクリプトを実行し、自分のアカウントを介して正方形のスプレッドシートに接続できるようにするには、何が必要ですか?個人的には、この特定の状況でOAuth2が自分のGoogleアカウントとガイドに記載されている設定を超えてどのように適用されるのか分かりません。

おそらく、この質問は多すぎるようです。もしそうなら、結論はここにあります:リンクhereで概説されているPythonクイックスタートの例をどのようにして誰でも自分のコンピュータ上でスクリプトを実行して動作させることができるようにするにはどうすればいいですか? (Googleアカウントへのアクセスを必要とする通常のアプリケーションのように、必要なセットアップをすべて手助けする)

答えて

1

client_secretに「client」という単語が含まれていることが考えられます。クライアントはあなたのアプリケーションです。はい、client_secretの誰かがあなたのアプリを偽装できる限り、その詳細は秘密にしておかなければなりません。迷惑ではなく、このようななりすましの影響は、Eveがアリスのデータにアクセスできるまでに及ばないという点ではごくわずかです。

アプリの各ユーザーは、アプリにデータにアクセスするためにOAuthダンスを実行する必要があります。この権限は、トークンとアクセストークンをリフレッシュする際に表示され、各ユーザーがプライベートに保つ必要があります。

client_secretを配布する場合は、犠牲(つまり偽の)Googleアカウントを使用することを検討してください。そうすれば、悪用されてもメインのGoogleアカウントに影響はありません。

デベロッパーコンソールに独自のアプリを登録する方法をユーザーに指示し、独自のclient_secretを生成する方法もあります。

+0

gitにコミットするときに 'client_secret'ファイルを含めるべきですか、それとも安全でないのでしょうか?そして、 'クライアントの秘密 'の内容がpythonスクリプト内の変数にコピーされ、スクリプトを実行可能ファイルにコンパイルする前にそこから使用された場合、それは悪い考えですか? –

+0

私はあなたのgit repoがどのように公共に依存するかと思います。経験則として、秘密はコミットされるべきではありませんが、ユースケースによっては意味をなさないかもしれません。私は考慮すべき別の選択肢で私の答えを更新しました。 – pinoyyid

関連する問題