Pages: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 .. 15 :: one page |
|
Author |
Thread Statistics | Show CCP posts - 2 post(s) |
Zetsubou Gakusei
Sebiestor Tribe Minmatar Republic
1
|
Posted - 2014.12.10 18:52:54 -
[121] - Quote
Icahmura Hasaki wrote:Rhea should be fully supported already, as far as I'm aware. I just ran the unit tests and they all passed, though they are very rudimentary so there might be some missing data due to parsing errors still. I've just pushed a few minor crest related bugfixes to github that I'll get on nuget when I've accumulated a few more.
As for authed crest, I'm not sure how to incorporate it in a way that makes sence. Since the SSO requires a callback url and browser interaction and so on...
If anyone has ideas or suggestions for how I could incorporate it in a meaningful way, please let me know.
I'm not really an expert but I have had some experience with APIs such as facebook. Facebook too has a web-only login, the popular .net APIs solve it by making the user open the facebook API login from a browser control popup, do the login and then getting back the returned token to the application. I can't go into more detail because I don't really know how the backend works, I did use it this way and it works great with the .net browser control, non need for external implementations or anything.
I hope the same method (or a similar one) can apply with the SSO.
Also is there any reason this library shouldn't work with asp.net? In that environment it should be even easier to get the required auth tokens since the client is already in a browser (again, I'm not an expert so I could be saying something completely stupid) |
Icahmura Hasaki
Bearded BattleBears Brave Collective
7
|
Posted - 2014.12.10 19:37:00 -
[122] - Quote
What you're saying is perfectly doable, but I don't think it should be a part of the library. It's up to the library consumer to manage interaction with the end user, which includes managing the SSO authentication and handshakes and manage access tokens. Once you have the access token, that can be passed to EveLib and be used for authenticated CREST. But I'm not sure I want anything related to managing SSO and authentication to be included.
If anything I could create a separate library for that, but the SSO protocol is very straight forward and would only take a few minutes to code, so I'm not sure there's much value in it. |
Zetsubou Gakusei
Sebiestor Tribe Minmatar Republic
1
|
Posted - 2014.12.10 19:55:26 -
[123] - Quote
Icahmura Hasaki wrote:What you're saying is perfectly doable, but I don't think it should be a part of the library. It's up to the library consumer to manage interaction with the end user, which includes managing the SSO authentication and handshakes and manage access tokens. Once you have the access token, that can be passed to EveLib and be used for authenticated CREST. But I'm not sure I want anything related to managing SSO and authentication to be included.
If anything I could create a separate library for that, but the SSO protocol is very straight forward and would only take a few minutes to code, so I'm not sure there's much value in it.
I see, so at least will you add the authed CREST endpoints? |
Icahmura Hasaki
Bearded BattleBears Brave Collective
7
|
Posted - 2014.12.10 20:00:47 -
[124] - Quote
Yeah, you will be able to use authed crest, but you'll have to get the access token elsewhere. I'm not really up to date on authed crest though, is it available yet ? |
Zetsubou Gakusei
All-Out
1
|
Posted - 2014.12.10 20:14:19 -
[125] - Quote
Icahmura Hasaki wrote:Yeah, you will be able to use authed crest, but you'll have to get the access token elsewhere. I'm not really up to date on authed crest though, is it available yet ? It came out with Rhea, it's already up and working and various devs are already implementing it in their applications, right now we got the market orders available for use |
Icahmura Hasaki
Bearded BattleBears Brave Collective
7
|
Posted - 2014.12.10 20:20:56 -
[126] - Quote
Oh, I see now. Give me a few minutes :) |
Icahmura Hasaki
Bearded BattleBears Brave Collective
8
|
Posted - 2014.12.10 20:39:43 -
[127] - Quote
So I got the auth working. I'll probably need a few days to do this properly, as I'm quite busy these days. I'll post back when I release it on Nuget :) |
Icahmura Hasaki
Bearded BattleBears Brave Collective
9
|
Posted - 2014.12.16 19:30:53 -
[128] - Quote
I've pushed a beta release to nuget, which brings Authed CREST and a lot of other improvements. More importantly, the EveLib.EveCrest module is NOT fully backwards compatible. I've refactored a lot of the code and the models, but it shouldn't take long to find and fix the errors if you do update.
Major changes
- Full support for authenticated CREST. Set a valid AccessToken and Mode to Authenticated on your EveCrest instance.
- EveLib.EveAuth.EveSso: A very basic helper class for managing SSO.
- EveCrest.Load() can be used to load any CrestHref or CrestLinkedEntity instances.
- Added support for the versioning provided by CCP for Crest. Crest will now emit a warning for deprecated resources, and optionally throw an exception.
- Added support for some additional Crest resources, more will come.
- Lots of cleanup, more consistent naming scheme
Next on the list, I intend to improve on the Load() feature, adding a way to load the resource without having to pass it to an EveCrest instance. I would also like to implement deferred execution for CREST as a whole, possibly in a new module with no static entry points. |
Zetsubou Gakusei
All-Out
1
|
Posted - 2014.12.17 08:19:13 -
[129] - Quote
Thanks for the update! I've been using the library in the past days and I've always been positively pleased. Can't wait to play with SSO now! |
Icahmura Hasaki
Bearded BattleBears Brave Collective
10
|
Posted - 2014.12.17 08:38:00 -
[130] - Quote
No, 2.1.0-beta1 is the latest release. You have to select it manually on the Nuget page, or change the settings on your client to allow pre-releases. I'm currently working on it, so might have another version up by the end of the day.
Please let me know if you have any issues or if something's unclear with the new stuff :) |
|
Zetsubou Gakusei
All-Out
1
|
Posted - 2014.12.17 14:40:41 -
[131] - Quote
After taking all morning to manage to figure out how to manually get the SSO token I looked into your source and found out that you implemented the whole token request part >_<
I was somehow under the impression that I had to do it myself for some reason and went ahead and did my own (awful) thing...
Also I laughed too hard at the "360 noscope" comment in the source, just letting you know |
Icahmura Hasaki
Bearded BattleBears Brave Collective
11
|
Posted - 2014.12.17 14:58:08 -
[132] - Quote
Been working at it all day, in fact :) Glad to hear you've found it useful though. Just finished up some last things now, before I'm done.
Got a lot of cool stuff coming, such as automatic token refreshes, lambda queryable crest resources and more. |
Zetsubou Gakusei
All-Out
1
|
Posted - 2014.12.17 15:04:54 -
[133] - Quote
Icahmura Hasaki wrote:Been working at it all day, in fact :) Glad to hear you've found it useful though. Just finished up some last things now, before I'm done.
Got a lot of cool stuff coming, such as automatic token refreshes, lambda queryable crest resources and more.
I'm kind of stuck on the actual authentication right now, the application gets stuck right after I authenticate and try to retrieve values from the token, probably due to my inability to use await and async
I tried:
var authResult = EveSso.Authenticate(encodedAuth, code);
Response.Write(authResult.Result.AccessToken); //writing to the page the token so I can check it worked
I'm probably doing it wrong, what's the correct way? |
Icahmura Hasaki
Bearded BattleBears Brave Collective
11
|
Posted - 2014.12.17 15:09:10 -
[134] - Quote
That should work, all though it might hang a bit since you're not using await. Are you sure the encodedAuth and Code is correct? You have to manually copy the Code from your browser after logging in, if you're not doing that already. |
Zetsubou Gakusei
All-Out
1
|
Posted - 2014.12.17 15:10:41 -
[135] - Quote
Icahmura Hasaki wrote:That should work, all though it might hang a bit since you're not using await. Are you sure the encodedAuth and Code is correct? You have to manually copy the Code from your browser after logging in, if you're not doing that already. I'm doing that in asp.net so I already got the login and the callback working, the code is correct and the encoded value is right too, I just can't figure out how to use the async because I'm not very experienced on the subject |
Icahmura Hasaki
Bearded BattleBears Brave Collective
11
|
Posted - 2014.12.17 15:12:33 -
[136] - Quote
Well, it should work like that too. To test it async you can simply wrap it
public async void test(your parameters) { var authResult = await EveSso.Authenticate(encodedAuth, code); Response.Write(authResult.AccessToken); //writing to the page the token so I can check it worked
}
I've added much better error handling to EveAuth on github, that might help you out. The version on github was just a quick draft to get something working to test it out.
Drop by IRC, easier to communicate http://irc.lc/coldfront/eve-dev/ |
Zetsubou Gakusei
All-Out
1
|
Posted - 2014.12.17 15:23:20 -
[137] - Quote
Icahmura Hasaki wrote:Well, it should work like that too. To test it async you can simply wrap it public async void test(your parameters) { var authResult = await EveSso.Authenticate(encodedAuth, code); Response.Write(authResult.AccessToken); //writing to the page the token so I can check it worked } I've added much better error handling to EveAuth on github, that might help you out. The initial version that is on nuget was just a quick draft to get something working to test it out. Drop by IRC, easier to communicate http://irc.lc/coldfront/eve-dev/
I'm already on there actually, if you were online you probably should have seen my struggle through the day in getting this stuff to work |
Icahmura Hasaki
Bearded BattleBears Brave Collective
11
|
Posted - 2014.12.17 16:58:51 -
[138] - Quote
A new update is up no NuGet.
Since I've already made some breaking changes to the coming version, this includes a few more. I've done a major cleanup of namespaces and class names. The EveOnline API module has NOT been changed at all. All modules now live in their own namespace, instead of a common Modules namespace. Most Model classes that had a Module prefix have had that removed, resulting in much shorter class names. It should generally be easier to find the classes you need, and any capable IDE should be able to detect and fix the all the changes. All API methods and similar stay the same.
New features
- EveCrest now supports refresh tokens with optional automatic refresh
- EveCrest now supports a LINQ like query structure. EveCrest.GetRoot().QueryAsync(r => r.Alliances). Used EveCrest.Load() internally.
- EveCrest.Load() has been improved.
- EveAuth has been improved with better error handling, and a Verify(token) method.
- Implemented ALL remaining CREST resources. Parsing bugs may still exist, please let me know.
If anyone wants to update but are afraid of things breaking, contact me and I'll help you out. The changes are very straight forward to fix, it's mostly just a matter of removing or adding a part of the name space or class name. |
Icahmura Hasaki
Bearded BattleBears Brave Collective
11
|
Posted - 2014.12.18 13:17:19 -
[139] - Quote
Another pre release is up. This fixes a bug as well as adding some features.
New features
- You can now set an AuthedMaxConcurrentRequests and PublicMaxConcurrentRequests in EveCrest.RequestHandler.
- You can now pass IEnumerables to EveCrest.Load() and CrestResource.Query().
- Added sync wrappers for EveCrest.LoadAsync() and CrestResource.Query().
- Improved error handling for EveAuth and EveCrest, including some special cases.
- Improved token management, smarter automatic token refreshes
- Implemented the last CREST resource, MarketOrders. CREST support should now be complete.
- Implicit inferring of IDs for resource links if CREST doesn't return one explicitly. If no ID is set, it will attempt to extract one from the URI. You can check IsIdExplicit to see if the ID was set explicitly or not. If it was not explicit and inferring it failed (the resource doesn't have an id) the ID will be negative. I don't think this can occur with the current state of CREST, but you never know.
Bugfix: I fixed an issue with beta2 that caused all requests to use Authenticated mode. |
Erik Kalkoken
The Great Harmon Institute Of Technology Enemy Spotted.
14
|
Posted - 2014.12.18 19:22:32 -
[140] - Quote
Great job! Will check it out on my next c# project. |
|
Icahmura Hasaki
Bearded BattleBears Brave Collective
14
|
Posted - 2014.12.19 16:05:31 -
[141] - Quote
Another update is out on nuget, a final release of version 2.1.0 will probably be out shortly.
You can no longer switch between authenticated and public mode after instantiating the EveCrest object, since all resources hold a reference to it and use it for queries.
I've added two new ctors which enables authenticated mode, one takes an access token, and the other a refresh token and an encoded key. The default ctor uses public mode.
Automatic paging for LINQ queries A cool new feature is support for automatic pagination of collections when using LINQ in queries. This enables you to query multiple pages with a single LINQ expression, and is enabled by default. To disable, set AllowAutomaticPaging to false. An example would be finding data about an alliance, which would usually require you to go through 13 pages, following 'next' links and checking the content. This can now be done with a single statement: var alliance = crest.GetRoot().Query(r => r.Alliances).Query(r => r.Single(a => a.Id == 123)); or var alliances = crest.GetRoot().Query(r => r.Alliances).Query(r => r.Where(a => a.Name.Contains("Brave")));
And it supports all possible LINQ expressions and extensions.
- I've added properties for setting XRequestedWith, Charset and UserAgent to CrestRequestHandler.
- I've added discovery of new resources, which will let you know when CCP implements a previously unsupported resource if you attempt to query it.
- You can now pass ImageHrefs, which are usually logos and portraits, to EveCrest.LoadImage() to get the byte data.
- I've added support for some newly discovered resources, and added a couple of missing ones to the root model.
- The root object can be cached in the evecrest object, and is enabled by default. If you have a seriously long running task which uses the same EveCrest object (weeks?), you might want to disable this.
And lots of other various tweaks and fixes. The README has also had its section on CREST updated. |
Icahmura Hasaki
Bearded BattleBears Brave Collective
14
|
Posted - 2014.12.22 22:32:04 -
[142] - Quote
EveLib 3.0 is now released. Because of the backward incompatibilities, it's been bumped as a new major release.
EveLib is now being distributed as separate libraries on nuget, instead of a single package. This lets me release updates to specific modules without affecting the others. There is a Core module that will be installed automatically as a dependency, so just pick the modules you need and let nuget handle the rest. I'll put links in the original post.
Core Improved EveLibFileCache, with better support for multiple and concurrent instances. Cache paths are now set in a constructor instead of Config. Improved cache purging. Added a CacheLevel enum. This currently supports 4 modes, the default should suffice for most uses.
EveOnlineApi EveOnlineApi has been renamed to EveXml, which better describes the module. This affects the assembly name, the namespace and 4 classes. Added support for CacheLevel to the RequestHandler. Removed EnableCacheLoad and EnableCacheStore properties.
ZKillboard Added support for CacheLevel to the RequestHandler. Removed EnableCacheLoad and EnableCacheStore properties.
EveCrest Added complete support for public and authenticated CREST, with refresh token or access tokens, and several new features related to authenticated CREST. Added support for every currently available resource, I think Added LINQ support for paginated collection resources Added local caching with support for CacheLevel Added MaxConcurrentRequests property for the RequestHandler. The RequestHandler can be shared between EveCrest instances which allows you to throttle properly while using several different instances with different tokens.
Lots of other features that have been described in recent posts.
|
SJ Astralana
Syncore
89
|
Posted - 2015.01.06 01:04:51 -
[143] - Quote
I did a clone today, and can't build due to a missing CrestCollection.cs in EveCrest.
Hyperdrive your production business: Eve Production Manager
|
Tango Papa
The Scope Gallente Federation
0
|
Posted - 2015.01.18 04:43:49 -
[144] - Quote
Can someone post a simple working example of interacting with the Zkillboard module? I'm a C# noob and I'm having a difficult time getting going. |
Icahmura Hasaki
Bearded BattleBears Brave Collective
15
|
Posted - 2015.01.19 03:37:23 -
[145] - Quote
var api = new ZKillboard(); var options = new ZKillboardOptions(); options.Limit = 1; options.WSpace = true; ZkbResponse response = api.GetKills(options); // use the data in the response
You should read the documentation on ZKillboard what options you can use and combine. |
Tango Papa
The Scope Gallente Federation
0
|
Posted - 2015.01.19 18:34:59 -
[146] - Quote
Icahmura Hasaki wrote:var api = new ZKillboard(); var options = new ZKillboardOptions(); options.Limit = 1; options.WSpace = true; ZkbResponse response = api.GetKills(options); // use the data in the response
You should read the documentation on ZKillboard what options you can use and combine.
You make it look so easy.
I'm more confident creating structs and using pointers in C so I'm really out of my league when it comes to anything with classes and methods. I can read the ZKillboard API but what I really needed was a C# code example to get started with. Thanks a ton for your help! |
Tango Papa
The Scope Gallente Federation
0
|
Posted - 2015.01.21 01:52:26 -
[147] - Quote
What really obvious thing am I missing? I'm trying to get information from attackers such as corp, alliance, id, etc. but I can only see DamageDone, FinalBlow, FinalBowString, SecurityStatus, etc.
It's obvious that in the JSON returned by Zkb all is as expected:
Quote: "attackers":[ {"characterID":"384765072", "characterName":"Ssj4gogeta", "corporationID":"98170031", "corporationName":"The Desolate Order", "allianceID":"99003214", "allianceName":"Brave Collective", "factionID":"0", "factionName":"", "securityStatus":"0.0710392792773426", "damageDone":"900", "finalBlow":"1", "weaponTypeID":"31886", "shipTypeID":"12005" } ],
But I'm totally overlooking something here:
Quote:var api = new ZKillboard(); var options = new ZKillboardOptions();
options.Limit = 1; options.WSpace = true; ZkbResponse response = api.GetKills(options); foreach (var data in response) { Console.WriteLine("KillID: " + data.KillId); Console.WriteLine("Number of attackers: " + data.Attackers.Count); foreach (var attackers in data.Attackers) { // Can only get DamageDone, FinalBlow, FinalBowString, SecurityStatus, ShipTypeId, and WeaponTypeId here.
} } |
Icahmura Hasaki
Bearded BattleBears Brave Collective
15
|
Posted - 2015.01.21 04:25:51 -
[148] - Quote
I don't have access to the project here, but looking at the code at github, it seems I've forgotten to inherit ZkbAttacker from ZkbEntity, so many of the general properties are missing. If you've compiled it yourself you can change
public class ZkbAttacker {
to
public class ZkbAttacker : ZkbEntity {
in Models/ZkbResponse.cs
I'll push a fix for this when I get the opportunity, maybe tomorrow.
|
Tango Papa
The Scope Gallente Federation
0
|
Posted - 2015.01.21 05:28:40 -
[149] - Quote
Icahmura Hasaki wrote:I don't have access to the project here, but looking at the code at github, it seems I've forgotten to inherit ZkbAttacker from ZkbEntity, so many of the general properties are missing. If you've compiled it yourself you can change
public class ZkbAttacker {
to
public class ZkbAttacker : ZkbEntity {
in Models/ZkbResponse.cs
I'll push a fix for this when I get the opportunity, maybe tomorrow.
Awesome, glad I wasn't going crazy. I installed using the package manager so I'll just wait for a new release for now and work on other aspects of my project.
Thanks again!
|
SJ Astralana
Syncore
89
|
Posted - 2015.01.21 18:03:58 -
[150] - Quote
Tango Papa wrote:Icahmura Hasaki wrote:var api = new ZKillboard(); var options = new ZKillboardOptions(); options.Limit = 1; options.WSpace = true; ZkbResponse response = api.GetKills(options); // use the data in the response
You should read the documentation on ZKillboard what options you can use and combine. You make it look so easy.
C# is C++ with training wheels. Funny thing about training wheels, they're like diapers: you need them when you're too young or too old.
Hyperdrive your production business: Eve Production Manager
|
|
|
|
|
Pages: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 .. 15 :: one page |
First page | Previous page | Next page | Last page |