# \[10.0.0 - version 52\] GESI - Google Sheets ESI Add-On - Now an EVE Online Partner!

**URL:** <https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406>\
**Category:** Third Party Developers\
**Tags:** esi, tool\
**Created:** [August 3, 2017, 10:59pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406 "2017-08-03T22:59:11Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [November 29, 2017, 4:03pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/21 "2017-11-29T16:03:10Z")

</div>

**3.1.1** November 29, 2017

* * *

### Bug Fixes

- Fix issue with SSOing

---

<div class="post-metadata">

**Author:** ![Pindi\_buoy](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/pindi_buoy/32/14679_2.png) [@Pindi\_buoy](https://forums.eveonline.com/u/Pindi_buoy)\
**Post date:** [December 1, 2017, 9:09am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/22 "2017-12-01T09:09:43Z")

</div>

Hi,

Getting this error, tried resetting Auth too:

Error retrieving token: invalid\_request, Client credentials should only be provided once. Remove them from either the ‘Authorization’ header or the body. (line 424, file “Service”, project “OAuth2”)

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [December 2, 2017, 3:12am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/23 "2017-12-02T03:12:57Z")

</div>

That is the error version `3.1.1` fixed.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [December 4, 2017, 9:48pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/24 "2017-12-04T21:48:36Z")

</div>

**3.1.2** December 4, 2017

* * *

### Bug Fixes

- Fix `Reference does not exist` bug on character and corporation assets functions when the requested page is empty and opt\_headers is false.
- Fix no output in corporationExtractions function.

---

<div class="post-metadata">

**Author:** ![Lord\_Kaho](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/lord_kaho/32/460342_2.png) [@Lord\_Kaho](https://forums.eveonline.com/u/Lord_Kaho)\
**Post date:** [December 6, 2017, 10:49am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/25 "2017-12-06T10:49:42Z")

</div>

Hey,

can you add the function to get the personal Mining Ledger from the logged Chars? 🙂

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [December 6, 2017, 3:38pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/26 "2017-12-06T15:38:44Z")

</div>

@Lord_Kaho

It already exists.

> /\*\*
> 
> - Paginated record of all mining done by a character for the past 30 days
> - @param {string} name Name of the character used for auth. If none is given, defaults to AUTHING\_CHARACTER.
> - @param {number} page page number of response to fetch. Defauts to page 1
> - @param {boolean} opt\_headers Default: True, Boolean if column headings should be listed or not.
> - @return Mining ledger of a character
> - @customfunction  
> \*/  
> function characterMining(name, page, opt\_headers)

---

<div class="post-metadata">

**Author:** ![C-137](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/c-137/32/146166_2.png) [@C-137](https://forums.eveonline.com/u/C-137)\
**Post date:** [December 9, 2017, 7:19pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/27 "2017-12-09T19:19:55Z")

</div>

Hey man good stuff. I had some questions though. What is the rammifactions of exposing the 3rd Party App ClientID and Secret? My understanding is that the consequences are minimal given that the callback process is tied to the specific sheet ID? My cryptography knowledge is not top tier, so I am not sure if they can unhash the password? Would the secret hash be the password hash for the account registered to the app?

Aside from that, I have run into some odd issues with your script that required customization:

-Altering ESI path to /latest/ for certain endpoints that are not available int he v1 path. (Char bookmarks come to mind here)

-Altering the functions to allow custom refresh tokens (without custom refresh param’s your data’s freshness is up to google’s crazy auto refresh logic).

-Adding a google cache service to the url fetch’s to prevent excess url hits on google’s auto refresh. (this is annoying to implement since script functions run in parallel threads).

Good work though, this is the best ESI script I have found out there.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [December 9, 2017, 7:40pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/28 "2017-12-09T19:40:39Z")

</div>

@C-137  
TBH I’m not too familiar with OAuth2 standards in that regard.

It seems that characterBookmarks is actually a v2 route now, so that would be why v1 doesnt work. I’ll have an update out this weekend to update some of those routes that have been updated.

Caching is something i want to do eventually, but I don’t have a date of when i will start/finish it. If someone wants to make a PR i’ll be happy to review it.

---

<div class="post-metadata">

**Author:** ![C-137](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/c-137/32/146166_2.png) [@C-137](https://forums.eveonline.com/u/C-137)\
**Post date:** [December 9, 2017, 9:39pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/29 "2017-12-09T21:39:56Z")

</div>

Yea a few others are on v2 as well, it is mostly a simple fix, but some of the have different header structures.

I have not really solved my cahce issues yet either or I would send you a test sample. For example I call the same function 4x in one row, and google will run them in parallel causing all 4 to miss the cache together, causing 4x url fetches instead of 1 and 3 cache returns.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [December 12, 2017, 9:31pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/30 "2017-12-12T21:31:08Z")

</div>

**3.2.0** December 12, 2017

* * *

### New Features

- Add corporation bookmark functions.
- Add corporation contract functions.

### Changes

- Update various endpoint route versions

* * *

### New Required Scopes - Reauth will be required to use related functions

```
esi-bookmarks.read_corporation_bookmarks.v1 
esi-contracts.read_corporation_contracts.v1
```

---

<div class="post-metadata">

**Author:** ![Chill\_Slice](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/chill_slice/32/174542_2.png) [@Chill\_Slice](https://forums.eveonline.com/u/Chill_Slice)\
**Post date:** [December 18, 2017, 2:36am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/31 "2017-12-18T02:36:54Z")

</div>

I want to generate an auth link for someone whose name/corp\_id are placed in the script, but who does not have write access to my spreadsheet. He is unable to see the GESI menu on the toolbar so I sent him the generated auth link. When he tries to authorize, he gets the following error upon clicking “Authorize”: “The state token is invalid or has expired. Please try again.” On my end, the error in the sheet reads “Access not granted or expired.” I’m assuming this has to do with the redirect after the auth and/or the fact that he does not have access rights, but it seems to be preventing my sheet from pulling his info. All I’m trying to do at the moment is use characterMining() to pull his mining history. The AUTHING\_CHARACTER var is set to this user, and I’ve used the function with the character’s name as well. And of course for my own characters your script is working beautifully.

Is there a way I could bypass this without granting him write access to the sheet?

---

<div class="post-metadata">

**Author:** ![Soldarius](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/soldarius/32/313493_2.png) [@Soldarius](https://forums.eveonline.com/u/Soldarius)\
**Post date:** [December 18, 2017, 3:02pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/32 "2017-12-18T15:02:16Z")

</div>

Sounds like the someone has provided a bad/expired API key.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [December 18, 2017, 3:53pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/33 "2017-12-18T15:53:48Z")

</div>

@Chill_Slice

You have to be able to at least access the sheet for the callback to work. Easiest solution would be to try to give at least view access, have him do the sso, then revoke it. Else, do the same with edit access.

@Soldarius

This doesn’t use API keys.

---

<div class="post-metadata">

**Author:** ![KenFlorian](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/kenflorian/32/449998_2.png) [@KenFlorian](https://forums.eveonline.com/u/KenFlorian)\
**Post date:** [December 19, 2017, 11:07pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/34 "2017-12-19T23:07:32Z")

</div>

I just started using CharacterWallletTransactions.

How many days/weeks/months of data will it pull and maintain?

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [December 20, 2017, 12:26am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/35 "2017-12-20T00:26:40Z")

</div>

@KenFlorian

ESI will return the transactions that occurred within the last 30 days in batches of 500. if more than 500 transactions occurred within the last month, you will have to supply the function with a `from_id` param, i.e. the oldest `transaction_id` returned. This will then return the records that happened before that id.

---

<div class="post-metadata">

**Author:** ![KenFlorian](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/kenflorian/32/449998_2.png) [@KenFlorian](https://forums.eveonline.com/u/KenFlorian)\
**Post date:** [December 20, 2017, 12:33am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/36 "2017-12-20T00:33:51Z")

</div>

Thank you.

---

<div class="post-metadata">

**Author:** ![KenFlorian](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/kenflorian/32/449998_2.png) [@KenFlorian](https://forums.eveonline.com/u/KenFlorian)\
**Post date:** [December 22, 2017, 5:37pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/37 "2017-12-22T17:37:52Z")

</div>

What drives refresh rate, throttling?

I am now using the sheet heavily.

I’m seeing periods where “loading” takes a long time…a very long time and sometimes it never completes in a given game session.

Does CCP throttle this by IP, User?

Could I be creating latency problems for myself by using both these API calls and still being connected to EveKit through jeveassets?

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [December 22, 2017, 10:42pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/38 "2017-12-22T22:42:47Z")

</div>

Whatever Google Sheets does by default. I need to introduce some caching at some point, but no eta on when it will be done.

---

<div class="post-metadata">

**Author:** ![KenFlorian](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/kenflorian/32/449998_2.png) [@KenFlorian](https://forums.eveonline.com/u/KenFlorian)\
**Post date:** [December 30, 2017, 2:36pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/39 "2017-12-30T14:36:06Z")

</div>

edit: NVM. Work-around working as intended…simply call the function twice on the same sheet.

Are you willing / able to make this function return at least two pages, _in a single result_ set back to the sheet?

characterAssets(name, page, opt\_headers)

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [December 30, 2017, 5:35pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/40 "2017-12-30T17:35:29Z")

</div>

> [@KenFlorian](#):
>
> Are you willing / able to make this function return at least two pages, in a single result set back to the sheet?

I’d rather keep the tool to be just a way to interact with ESI. End users can modify it to fit their specific needs.

[Previous page](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406.md?page=1)

[Next page](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406.md?page=3)
