3.1.1 November 29, 2017
Bug Fixes
- Fix issue with SSOing
3.1.1 November 29, 2017
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ā)
That is the error version 3.1.1
fixed.
3.1.2 December 4, 2017
Reference does not exist
bug on character and corporation assets functions when the requested page is empty and opt_headers is false.Hey,
can you add the function to get the personal Mining Ledger from the logged Chars?
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)
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.
@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.
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.
3.2.0 December 12, 2017
esi-bookmarks.read_corporation_bookmarks.v1
esi-contracts.read_corporation_contracts.v1
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?
Sounds like the someone has provided a bad/expired API key.
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.
This doesnāt use API keys.
I just started using CharacterWallletTransactions.
How many days/weeks/months of data will it pull and maintain?
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.
Thank you.
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?
Whatever Google Sheets does by default. I need to introduce some caching at some point, but no eta on when it will be done.
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)
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.