Thanks. For future work you might also consider a throttling parameter at least for Alphavantage.
Regards, John Ralls > On Jun 16, 2019, at 1:14 PM, Vincent Lucarelli <[email protected]> > wrote: > > Hi, > > I think for the next release of Finance::Quote, Alphavantage.pm and IEXCloud > will only support environment variables (named ALPHVANTAGE_API_KEY and > IEXCLOUD_API_KEY). > > We are going to work on extending the new operator to allow setting instance > variables, including module specific data. Something like: > > my $q = Finance::Quote->new( > TIMEOUT => 60, > FAILOVER => 1, > alphavantage => { API_KEY => 'thealphavkey', othervariable => 'value' }, > iexcloud => { API_KEY => 'theiexkey'}, > ); > > There will also be setter methods as you suggested. > > We can keep you informed so that the September GnuCash release can take > advantage. > > Best, > > Vince > >> On Jun 15, 2019, at 10:59 PM, John Ralls <[email protected]> wrote: >> >> David, >> >> AQBanking maintains its own set of settings files in ~/.aqbanking. >> Finance::Quote at present doesn't keep any user state. >> >> Regards, >> John Ralls >> >> >>> On Jun 15, 2019, at 5:52 PM, David Carlson <[email protected]> >>> wrote: >>> >>> I believe the AQ Banking feature has already solved the issue of saving >>> usernames and passwords for multiple financial institutions in a manner >>> that is easily migrated to new GnuCash releases. Is it possible to do the >>> API Key thing in a manner that would seem very little different to the user? >>> >>> >>> >>> On Sat, Jun 15, 2019 at 12:53 PM John Ralls <[email protected]> wrote: >>> >>> >>>> On Jun 15, 2019, at 9:17 AM, Vincent Lucarelli >>>> <[email protected]> wrote: >>>> >>>> Hi, >>>> >>>> We are working on the next release of Finance::Quote and will try to add >>>> https://iexcloud.io/ <https://iexcloud.io/> as a new module. >>>> >>>> Like Alphavantage, users will need to register and get an API key. >>>> >>>> Since GnuCash is a major user of Finance::Quote, I wanted to get opinions >>>> on how to handle API keys. I have two initial ideas: >>>> >>>> >>>> 1. Each Finance::Quote module expects a module specific environment >>>> variable and GnuCash would need to update the Preferences > Online Quotes >>>> pane for each API key. >>>> >>>> 2. We invent a more global environment variable that can hold multiple API >>>> keys. For example, something like >>>> >>>> FQ_API_KEYS=ALPHAVANTAGE_API_KEY:XXXXXXXXXXXXXXXX;IEXCLOUD_API_KEY:sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >>>> >>>> >>>> The problem with the first approach is that GnuCash preferences need to >>>> change with each addition. >>>> >>>> The problems wit the second approach are usability and parsing (do we >>>> assume no service would ever include : or ; in the API key?). The later >>>> could be solved with json formatting, but that is even worse for users. >>>> >>>> >>>> >>>> Appreciate any suggestions. >>> >>> Vince, >>> >>> Excellent news, thanks for stepping up to help Erik out. >>> >>> ';' in your FQ_API_KEYS will have to be quoted to keep the shell from >>> interpreting it, and any quotes in the key would have to be escaped even >>> with separate environment variables per service. Telling users to escape >>> the delimiter character and quotes is easier than teaching them to format a >>> JSON string. e.g FQ_API_KEYS="AlphaVantage:xxxxxxxxx\"xxxx\:xxxxxx...". The >>> real problem with that is that it breaks backward compatibility with >>> GnuCash, which sets ALPHAVANTAGE_API_KEY when the preference is set. That >>> could be worked around by continuing to look for the older environment >>> variable, or telling users to set the new environment variable themselves, >>> which they'd need to do anyway to use a new service until we rewrote the >>> preference item. Note that we're two weeks away from our next release, so >>> that change would be in the September release at the earliest. >>> >>> Environment variables are clumsy. Might you consider an alternative, >>> perhaps a "set_key(service, key)" function on the Finance::Quote object? >>> >>> Regards, >>> John Ralls >>> >>> >>> _______________________________________________ >>> gnucash-devel mailing list >>> [email protected] >>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel >>> >>> >>> -- >>> David Carlson >> > _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
