Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added 3 examples for google sheets API
these 3 minimalistic examples should demonstrate how to use google sheets APIs. There are also some explanations for each of the examples.
- Loading branch information
1 parent
c71b9a7
commit e367ff1
Showing
2 changed files
with
57 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
{-# LANGUAGE OverloadedStrings #-} | ||
|
||
module Example.Sheets where | ||
|
||
--------------------------------------------------------------------------------- | ||
import Network.Google.Resource.Sheets.Spreadsheets.Get | ||
import Network.Google.Sheets | ||
import Network.Google | ||
|
||
import Control.Lens ((.~), (<&>)) | ||
import Data.Text (Text) | ||
import System.IO (stdout) | ||
import Data.Aeson.Types | ||
|
||
--------------------------------------------------------------------------------- | ||
|
||
-- | | ||
-- This gets the Information about an spreadsheet. | ||
-- In order to be able to run these examples you need to | ||
-- create a service acount from google's developers console | ||
-- and copy the dowloaded json file to ~/.config/gcloud/application_default_credentials.json. | ||
-- | ||
-- you must also share with your service the spreadsheet that you want to get the info of. | ||
-- In order to do this you must share the sheet with the email address of your service | ||
-- which is in your downloaded service config file. | ||
-- | ||
-- after doing above step just pass the sreadsheet id to the function. | ||
exampleGetSheet :: Text -> IO Spreadsheet | ||
exampleGetSheet sheetID = do | ||
lgr <- newLogger Debug stdout | ||
env <- newEnv <&> (envLogger .~ lgr) . (envScopes .~ spreadsheetsScope) | ||
runResourceT . runGoogle env $ | ||
send (spreadsheetsGet sheetID ) | ||
|
||
-- | | ||
-- you pass the sheet id and a range (eg. "sheet1!A1:C3") in that sheet | ||
-- and it retreives the values in the specified range | ||
exampleGetValue :: Text -> Text -> IO ValueRange | ||
exampleGetValue sheetID range = do | ||
lgr <- newLogger Debug stdout | ||
env <- newEnv <&> (envLogger .~ lgr) . (envScopes .~ spreadsheetsScope) | ||
runResourceT . runGoogle env $ | ||
send (spreadsheetsValuesGet sheetID range ) | ||
|
||
|
||
exampleAppendValue :: Text -> Text -> [[Value]] -> IO AppendValuesResponse | ||
exampleAppendValue sheetID range val = do | ||
lgr <- newLogger Debug stdout | ||
env <- newEnv <&> (envLogger .~ lgr) . (envScopes .~ spreadsheetsScope) | ||
runResourceT . runGoogle env $ | ||
send (svaValueInputOption .~ Just "USER_ENTERED" $ spreadsheetsValuesAppend | ||
sheetID | ||
( vrMajorDimension .~ Just VRMDRows $ vrValues .~ val $ vrRange .~ Just range $ valueRange) | ||
range ) |