0

問題: Googleドライブの&スプレッドシートファイルとの対話のためのサービスアカウントを作成しました.GoogleドライブAPIへのセッションを正常に作成できました。のサービスアカウントを持つgSuiteファイルが見つかりません

=> [#< Googleドライブ::ファイルID = "aSdsefooovjTnulaRlclbarrr" タイトル=> "はじめに"]

何レベル:しかし、私がアクセスを持っているファイルだけが、この定型でしますあなたは私が行方不明だと思いますか?

私の唯一の思いつきは、orgの外からのファイルを隠している他のトップレベルのアクセス許可です。サービスアカウントはファイルで明示的に共有されていますか?これは、サービスアカウントと共有したときに、それが何らかの兆候であると言います。 enter image description here

多分この文書の次の画像に関連していますか?私はドメイン全体の委任、およびプロジェクトの編集状態でサービスアカウントを作成し

1)

enter image description here

手順私はすでにを通じて行ってきた

https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority

..

2)私は、私は私の組織のgSuite管理者は/セキュリティにこのサービスアカウントのCLIENT_IDを追加しました/管理していた)サービスは、私はそれが

3へのAPIアクセスを持っているしたいシートに電子メールを占めることを招待しましたスコープを持つAPIのクライアントアクセス... - >https://www.googleapis.com/auth/drivehttps://spreadsheets.google.com/feeds

は、私はすべてのドキュメント/チュートリアルで見つけることができるすべての組み合わせを試してみました。私の接続コードはhttps://www.twilio.com/blog/2017/03/google-spreadsheets-ruby.htmlに基づいています。 client_secret.jsonでスコープを渡そうとしました。サービスアカウントのiamロールを使用してツールを試しました。

session = GoogleDrive::Session.from_service_account_key("client_secret.json")

{ 
    "type": "service_account", 
    "project_id": "gdrive-1231233", 
    "private_key_id": "food87c0bar16da9bfoooooo677bar", 
    "private_key": "-----BEGIN PRIVATE KEY-----\nsssEIEvQfooobarrrytyeho=\n-----END PRIVATE KEY-----\n", 
    "client_email": "[email protected]", 
    "client_id": "foo40990211bar", 
    "auth_uri": "https://accounts.google.com/o/oauth2/auth", 
    "token_uri": "https://accounts.google.com/o/oauth2/token", 
    "auth_provider_foox_cert_url": "https://www.googleapis.com/oauth2/v1/certs", 
    "client_foox_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/servicebot%40gdrive-foobar.iam.gserviceaccount.com" 
} 

#<GoogleDrive::Session:0v3fc6c3e25061> 

答えて

0

だから私は、明示的なスプレッドシートを見つけるために使用できる唯一の方法はspreadsheet_by_urlだっ判明 - .filesの.spreadsheetsは、すべてがnilを返した...など、.find_by_guid。 URLで検索すると直接ファイルが返され、読み書きが可能になります。

session = GoogleDrive::Session.from_service_account_key("client_secret.json") 
session.spreadsheet_by_url(ENV['GOOGLE_DATA_DUMP_URL']) 
worksheet = spreadsheet.worksheets[0] 
関連する問題