4

ドメイン内のGoogleスプレッドシートから一部のデータを読み込む必要があるPHP Webページを作成しようとしています(Google Apps Free Editionを使用しています)。Google Spreadsheet APIでのOAuth 2.0によるリクエストの承認

読まれるスプレッドシートは非公開ですが、私のドメインの一部の人には見えます。公開されていないため、APIを使用していても認証と承認の一部があることはわかっています。

私は、このページを見つけたが、私は理解していないものがある: http://code.google.com/intl/zh-TW/apis/spreadsheets/data/3.0/developers_guide.html#Auth

それは、これはokです、我々はOAuth 2.0のプロトコルを使用する必要がありますと言います。しかし、承認プロセス中に、"GoogleはユーザーにOAuthダイアログを表示し、アプリケーションにデータの一部を要求する権限を与えるよう求めています。"

私のウェブページには、スプレッドシートから読み込まれたデータが表示されます。だから誰かが私のウェブページに行くと、スプレッドシートの所有者に許可を求めるダイアログが表示されます。これが意味することですか?

アドバイスは大歓迎です。

答えて

4

達成はあなたのサーバとGoogleの間のサーバtoサーバ認証です。

このようにして、訪問者があなたのページに入ると、サードパーティの関与なしに自分のスプレッドシートからデータを取得します。 (達成する方がはるかに簡単ですが、いくつかのセットバックを持っているかもしれません)

あなたが Google Service Accountで探しているものを見つけることができI'ts

、そしてまたhere

、 別のソリューションを使用することですあなたのGoogle開発者アカウント(GoogleコンソールAPIから取得)でoauth 2.0プロトコル

  1. あなたがまだの場合は、
  2. Googleのデベロッパーアカウント(GoogleのコンソールAPI)を作成し、「オフライン」助成金を使用してアプリケーションのアクセス/リフレッシュトークンを生成します - あなたはあなたのDEVでAPI要求を行うことができることを意味しスプレッドシートアカウントでログインしていなくてもスプレッドシートアカウントに
  3. 生成したリフレッシュトークンを保存し、それを繰り返し使用してアクセストークンを繰り返し生成します(過去1時間のアクセストークン)。

のリフレッシュトークンが有効期限が切れることになっていませんが、場合には、それは、あなたは常にそれを再度生成し、あなたは新しいものとしていたものを交換し、それをアクセストークンを生成しておくことができます。

主要なセットが戻ってリフレッシュトークンが無効になる場合には、あなたはそれがあなたのスプレッドシートのアカウントにアクセスするために再交付金にあなたのdevのアカウントへのアクセスを、あなたが必要となりますよう、手動で、それを交換する必要がありますです。

これが少し助けてくれることを願っています。

Meny

2

はい、OAuthプロトコルを使用すると、保護されたリソースを他の側(Google)から尋ねようとすると、サイトが他の側のサイトにリダイレクトされ、Googleのログイン/パスワードダイアログが表示され、ユーザーは、あなたのサイトが他のサイト(あなたの場合はGoogle)からユーザーのリソースを使用できるようにすることに同意します。あなたが実際にしようとしている何のOAuthは

を働いていると(彼は例えば任意のクッキーを持っていない場合)、Googleはユーザーがまさにこのユーザーであることを確認していないため、Googleはあなたのユーザーの資格情報を必要とする方法である

+0

私は少し混乱しています。私のウェブページにアクセスするのはただのゲストで、私のGoogle AppドメインにはGoogleアカウントがありません。私はそれが必要なデータが私はGoogle Appドメイン内のプライベートGoogleスプレッドシートドキュメントからですが、私のWebページが公開表示になりたいです。 – bobo

+0

はOAuthが他の人のドメインからデータを読み込むにのみ適用されますか?私は自分のドメインから私がコントロールしているデータを読み込んでいますが、OAuthはまだ私の状況で役に立ちますか? – bobo

+0

あなたのケースでは、おそらく大規模なoauthのカスタマイズが必要になるでしょう。そうすれば、(ユーザーにとって)すべてのリクエストをリダイレクトし、データを表示することができます。しかし、実際には、あなたのサイトにあなたのユーザーを説明するグーグル(Facebookなど)のデータを表示するのに役立つプロトコルになっているはずです。あなたのタスクのために多分あなたは「公に** **それが必要とするデータが** **民間からですが閲覧可能な」他のソリューション – javagirl

4

グーグル&のOAuthチュートリアル: 私はこれを見つけるために日を探していました。それは私が使用している他のOAuthスタイルのチュートリアル その後、はるかに良いです。 Googleドキュメント/ Googleドライブに接続するためのものです。あなたはそれにリフレッシュトークンを追加する必要が https://developers.google.com/drive/examples/python

注:

Pythonの例はまた、Javaなどのための他の例を参照してください、ここにあります。しかし、それはあなたが期待するように機能します。

  SpreadsheetService service = 
        new SpreadsheetService("MySpreadsheetIntegration-v1"); 

      service.setHeader("Authorization", "Bearer " + accessToken); 
2

あなたは

//flow use httpTransport, clientSecrets, json factory and datastore factory 
val flow = new GoogleAuthorizationCodeFlow 
    .Builder(httpTransport,JSON_FACTORY,clientSecrets,SCOPES) 
    .setDataStoreFactory(datastoreFactory) 
    .build() 

// authorize 
val credential=new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user") 

とあなたのGDATAサービスとそれを使用する新しい提供のOAuth2フローを使用することができます:また、スプレッドシートの使用に接続する

val service:SpreadsheetService=new SpreadsheetService("SpreadsheetIntegration") 
service.setOAuth2Credentials(credential) 
フル

Scalaでは例:https://github.com/spaced/spreadsheet-oauth2-example

関連する問題