2017-10-05 18 views
0

私の考えは、Googleのシートを作成し、それを公開し、私の仕事用コンピュータのlinux/bashから日常的に値を読み書きするためにアクセスすることです。HTTP GoogleスプレッドシートAPI v4 OAuth 2.0なしでアクセスする方法

誰もが見つける/編集できる公開Googleドキュメントシートがあります。私は多くのことを読んだとespecialyここGoogle Sheet API v4私が見つけた

{ 
    "error": { 
    "code": 403, 
    "message": "The request is missing a valid API key.", 
    "status": "PERMISSION_DENIED" 
    } 
} 

https://developers.google.com/sheets/api/samples/reading

curl 'https://sheets.googleapis.com/v4/spreadsheets/1F6jh6756xNDlDYIvZm_3TrXb59EFEFHGEC7jdWz-Nx0/values/Sheet1!A1:A3'

戻って本を読んで、それをやって1F6jh6756xNDlDYIvZm_3TrXb59EFEFHGEC7jdWz-Nx0

: これは、シートIDです複雑な解決策。つまり、短い1時間であなたの公開シートにアクセスしたい場合です。

https://developers.google.com/oauthplayground/ v4 apiの承認を取得してから「認証コード」を取得し、「最新のトークン」を取得し、最後に「アクセストークン」を取得します。

{ 
    "range": "Sheet1!A1:A3", 
    "majorDimension": "ROWS", 
    "values": [ 
     [ 
     "a1" 
    ], 
    [ 
     "a2" 
    ], 
    [ 
     "a3" 
    ] 
    ] 
} 

完璧:あなたはこの
curl 'https://sheets.googleapis.com/v4/spreadsheets/1F6jh6756xNDlDYIvZm_3TrXb59EFEFHGEC7jdWz-Nx0/values/Sheet1!A1:A3' -H "Authorization: Bearer ya29.GlvaBLjrTdsSuSllr3u2nAiC-BOsjvIOE1x5afU3xiafB-FTOdLWDtfabuIMGF1rId5BsZxiTXxrx7VDEtxww4Q1uvW9zRndkfm3I2LZnT1HK2nTWzX_6oXu-NAG"

リターンのような公共のシートにアクセスすることができ、この "アクセストークン" を使用して

。理論上、「アクセストークン」は1時間後に終了し、「リフレッシュトークン」は期限切れになりません。あなたはトークンを保存し、「アクセストークン」を使ってシートを読み込み、失敗した場合は「トークンをリフレッシュ」を使用して新しい「アクセストークン」を取得して実行します。

しかし、「リフレッシュトークン」が償還/有効期限切れになっています。「認証コード」の有効期限が切れましたが、数時間後には何も動作しません。どうして?

このような権限のない私のGoogleシートフォームbashにカールを付けてアクセスするにはどうすればよいですか? 私のシートは一般公開されているため、ブラウザを使用している人は誰でも編集できます。

他の永久認証でこれを行う別の方法はありますか? なぜ電子メールを使用してパスしないのですか?

「APIキー」は説明されていますが、説明されていません。いくつか1つは、この方法をステップごとに説明できますか?

答えて

2

すべてのGoogle APIでは、[Googleデベロッパーコンソール1]にプロジェクトを作成し、公開データにアクセスする場合でも自分とアプリケーションを特定する必要があります。シートを公開しているので、google developer consoleにアクセスし、公開されているapiキーを作成してGoogleシートAPIをアクティブにすることを忘れないでください。次に、あなたのリクエストにkey = [YourKey]をパラメータとして追加します。

更新のDevコンソール:

プロジェクトを作成し、キーの取得:

Google developer console - >credentialsドロップダウン - - >は、プロジェクトを作成する> APIキー

enter image description here

それを有効にします:

Google developer console - >libraryシートを検索すると有効になります。

更新

{ "エラー":{ "コード":403、 "メッセージ": "要求が有効APIキーがありません。"、 "ステータス": "PERMISSION_DENIED"} }

あなたが自分自身をGoogleに特定していないことを意味します。 2015年にGoogle Startでは、あなたが誰であるかGoogleに知らせずにGoogle APIを使用するだけで自分自身を特定することを要求する必要があります。これを行うには、[Googleデベロッパーコンソール1]でプロジェクトを作成します。 APIキーを作成し、すべてのリクエストでそのAPIキーを使用します。これはパブリックデータでのみ機能します。

https://sheets.googleapis.com/v4/spreadsheets/1F6jh6756xNDlDYIvZm_3TrXb59EFEFHGEC7jdWz-Nx0/values/Sheet1!A1:A3?key=YOurKEY

注:プライベートユーザーデータを使用すると、あなたのトークンのいずれかaccess_tokenは=のOAuthを使用して使用する必要があるか、ヘッダ

の許可設定します:ベアラya29.GlvaBLjrTdsSuSllr3u2nAiC-BOsjvIOE1x5afU3xiafBを-FTOdLWDtfabuIMGF1rId5BsZxiTXxrx7VDEtxww4Q1uvW9zRndkfm3I2LZnT1HK2nTWzX_6oXu-NAG。

アクセストークンはAPIキーと同じではありません。

+0

GoogleのシートAPIを有効にし、私がsheetID = '1F6jh6756xNDlDYIvZm_3TrXb59EFEFHGEC7jdWz-Nx0'で作成した公開シートの公開APIを作成する方法をステップごとに記述してください。私はちょうどあなたのリンクをたどって、私は "失敗しました"メッセージをロードしました。 –

+0

写真は多少古くなっているかもしれませんが、これは私が現時点で持っているすべてのものです。http://www.daimto.com/google-developer-console-create-public-api-key/ – DaImTo

+0

最初の文が正しくありません。 [Sheets API v3](https://developers.google.com/sheets/api/v3/)は引き続きご利用いただけますが、まだ非推奨になっていないため、誰でも利用できるようになったシートに匿名でアクセスできます。 (これは使用するためのものかもしれません) – FTP

関連する問題