(edited by Killer Rhino.6794)
Nice list! Love ya!
Using it in my project at http://gw2.thelazy.net/
Really like what you’ve got here! Especially the desktop notifications. Well done, sir.
Thanks, that’s a pretty handy reference. If we could enter those all as a list into an events.json parameter, that would be super handy.
I second this.
From this post here:
The event data is updated in real-time, and there is no perceptible delay between an event state changing on the game server and it being updated in the API view.
Feel free to update as often as you’d like, though you probably don’t need to update more often than every 30 seconds or so.
The Talcmaster, this is phenomenal! Thank you!
I’ve created an example using RestSharp, if anyone is interested: https://gist.github.com/poke/5627036
Thanks for sharing, poke! Awesome work.
Hello mate, thank you for your effort, could be possible to do a little bit of documentation of the functions or examples in aplications.
I´m new at xcode.Honestly, being new at Xcode and describing Objective-C’s methods as functions suggests that you’d be better reading Apple’s Objective-C introduction articles in their developer section. Rhino has done a good job at making a clean, readable and well documented API… so there’s no much more he can do to help you.
@Rhino, good work chap. I too have been working on an API, but it takes a VERY different approach to yours so there’s likely room for both. I’ve tried to take a much more domain orientated approach, hiding the fact that data is even remotely hosted.
For example, fetching Worlds and WvW data is a call to;
[[GW2API sharedAPI] fetchCollection:GW2APIDomainCollectionWorldVsWorld
completionBlock:^(GW2APIDomainCollection collection) {
}];The idea is that you ask the API for meaningful collections of data, as opposed to dealing with services directly which is, ultimately what you’ve written. If you only want one specific set of stuff, perhaps you want to quickly get new WvW scores, so you can simply ask the API to update that area of the domain by simply passing the class we’re dealing with;
[[GW2API sharedAPI] fetch:[GW2Matchup class]
completionBlock:^(id domain) {
}];Again, good work chap. I hope to round my stuff out in the next day or two and kick it up to Github.
Awesome to hear other people are thinking about this problem in terms of ObjC, too. It’s my absolute favorite language; I’m genuinely excited to see your take on it, for sure!
I do plan to add more robust method calls to the framework, but wanted to put something out there that had all the endpoints included, first.
Hello mate, thank you for your effort, could be possible to do a little bit of documentation of the functions or examples in aplications.
I´m new at xcode.
Even I haven’t put GW2Kit through a proper application, yet (only unit tests). My next step is to add details on how to do this. Thanks for the support.
Cheers,
(edited by Killer Rhino.6794)
GW2Kit is Feature Complete
GW2Kit on GitHub
The SDK allows any valid parameters to be in each request.
Currently Has:
- items.json
- item_details.json
- events.json
- event_names.json
- map_names.json
- world_names.json
- wvw/matches.json
- wvw/match_details.json
- wvw/objective_names.json
- recipes.json
- recipe_details.json
Next steps:
- Turn on asynchronous network requests (highest priority)
- Improved unit tests
- How-to Wiki on GitHub
- Better code documentation
Have something working for now:
http://code.google.com/p/j-gw2-api/It includes the StartCom Root Certificate as Byte array, if you don’t want to download your own certificate, but it also allows you to use a .crt file on your computer.
The JSON object are the official implementation over at json.org.
Excellent work, Varonth!
Hello, world
So, we’re all really excited for the GW2 APIs to be up. As a gesture of my gratitude to the devs, I’d like to share some technical points to consider when working with with ’dem shiny new endpoints.
Note: There is a lot more to Internet security that is outside the purpose of this post. For a really in-depth look into HTTPS, see Apple’s TN2232
HTTPS vs. HTTP
At its very basic, HTTPS is your average HTTP protocol placed over a layer of encryption. Encryption is done through SSL/TLS.
When connecting to a server via HTTPS, the protocoal expects the server to eventually provide a public key certificate. This certificate contains identity information, which can be evaluated by the client to verify that the server is really who it says it is.
Taking the server’s word for it
But that’s just half of the story. Just because a server claims to be api.guildwars2.com, doesn’t mean you can just take its word for it. Rather, public key certificates rely on a chain of trust, wherein another authority (CA) vouches for the server’s identify.
Note: Humans have agreed to, and have put collective faith in, a select group of authorities. This is a (somewhat) manual process; this is what VeriSign is often known for.
How to break the Internet
Turns out, some certificate authorities are more “well known” than others (it’s all politics, man). In the case with the certificate installed on the server hosting https://api.guildwars2.com, the SSL certificate was issued by an authority that has given some community developers grief, and they have decide to ignore server trust completely.
I’m going to guess that a good way to undermine ArenaNets’ support & proliferation of a public REST API is to have 100s of community projects sharing code that talk to their service without any checks and balances. But there’s still a decent way to ensure security.
Pinning your hopes, dreams, and cert
As an alternative to blindly tossing away any attempt at security a server will throw back at your client, there is something called cert pinning.
Once a server’s SSL certificate is made public, a client can copy the certificate’s “fingerprint” and validate it continues to match the cert signature on the server for every request made. This is known as cert pinning.
If you are developing an application that will be using cert pinning still be certain that the certificate being pinned is legit; however, you’re no longer at the mercy of companies like Oracle, who might not include the certificate’s authority in their list of acceptable CA’s.
Plus, it’s all the rage.
How to pin
If your preferred networking library doesn’t include cert pinning out-of-the-box, you can always hack it in to your project anyways. The site is a little slow, but this page has some pretty good examples for various platforms and languages.
end communication
(edited by Killer Rhino.6794)
OP, I don’t understand what your goal is in hosting a contest. Could you explain a bit more?
Good stuff, but…
Correct me if I’m wrong, but it looks like you’re blinding trusting any SSL cert provided by all server.
As suggested by Cliff, it’s probably a lot better for your code to install the cert provided by https://api.guildwars2.com, before others start getting man-in-the-middle’d while using your code.
Updated GW2Kit
GW2Kit on GitHub
The SDK allows any valid parameters to be in each request.
Currently Has:
- items.json
- item_details.json
- events.json
- event_names.json
- map_names.json
- world_names.json
- wvw/matches.json
Currently Missing:
- wvw/match_details.json
- wvw/objective_names.json
- recipes.json
- recipe_details.json
cool. thanks for sharing!
First, thank you so much, ArenaNet! This is definitely the next best thing to actually working along side you guys.
GW2Kit – An Obj-C framework for iOS & OS X
GW2Kit on GitHub
What is GW2Kit?
GW2Kit is a native SDK project (for Apple’s Cocoa-based devices), which aims to provide:
- Well documented SDK interfaces,
- A dynamic framework for Mac apps,
- A static library for iOS apps,
- Unit tests to ensure GW2 API changes are in sync
I started the project just a few hours ago, so I’ve kind of overlooked the “well documented” part, but there is enough to get some of you developers started.
What’s there right now is:
- Item details (query by item_id)
- Event states (query by world_id, map_id, event_id)
Missing:
- The rest (it’s late and I’ve been working on this for few hours, and the remaining endpoints will get added tomorrow)
Let’s get this party started!
There’s so many sweet things I look forward to putting this SDK to use on. I don’t tweet, but journaling in-game adventures and posting them to Twitter seems like things people would get geek’d about!
So with that, here we go!
One more thing…
PS: gwaspy – A GW2Spidy.com Obj-C framework for iOS & OS X
gwaspy on GitHub
Awhile back, I also started working on a native SDK to communicate with gw2spidy.com.
I used it to build a Mac app (I called Spy Hunter) that would notify me when my precursor’s price changed. Here’s a screenshot
Cheers,
(edited by Killer Rhino.6794)
How often is the event data updated? I don’t want to pull the event data faster than necessary, or put any extra stain on you guys.
Thanks for the endpoints!
The old login screen is constantly on my mind. It impressed a “AAA” (triple-A) quality game, and just plain got me excited to jump into Tyria.
If someone of authority could simply say that this feature is dead forever, that would be enough; obviously, I would be disappointed, but I could finally stop wondering, wanting and wishing.
:C
I’ve noticed that the Flame Blast moves a little faster than it used to. Anyone else experience this?
Once people actually log on to download the patch and play around with the changes to engineer, I’m interested to hear what people’s actual impressions are.
What has worked for you? How have you adjusted? How would you rate it?
Thanks!
(edited by Killer Rhino.6794)
Someone please tell me because I seriously don’t know…
Changes in the patch will affect different players different ways. What’s your play style? What skills do you rely on and how you approach combat? It’d be helpful to know so we can actually get you a good answer.
If whatever this patch ends up actually being (since, ya know, it just came out…) gets players to start running multiple kits more, I’m all for it. I’ve been urging engineers to use 3-kits as much as possible; it’s really where this class shines.
I haven’t tried the new patch yet, but it suggests that my PvE build is going to see a bit of a bump in effectiveness (which it nice, but I already thought it was pretty good to start).
Traits: 5/30/0/25/10
Armor: Zerk
Runes: Sup. of the Engi, x6
Trinkets: Valkyrie, x6, with Emeralds, x6Elixir Gun, Flamethrower, Toolkit, Supply Crate
This discourages multiple kits…
Based on what, exactly?
If whatever this patch ends up actually being (since, ya know, it just came out…) gets players to start running multiple kits more, I’m all for it. I’ve been urging engineers to use 3-kits as much as possible; it’s really where this class shines.
I haven’t tried the new patch yet, but it suggests that my PvE build is going to see a bit of a bump in effectiveness (which it nice, but I already thought it was pretty good to start).
Traits: 5/30/0/25/10
Armor: Zerk
Runes: Sup. of the Engi, x6
Trinkets: Valkyrie, x6, with Emeralds, x6
Elixir Gun, Flamethrower, Toolkit, Supply Crate
(edited by Killer Rhino.6794)
If I try to drag my (already equipped) Ancient Karka Shell from the Hero Panel into my personal bank, the client crashes.
I’ve also submitted a bug report through /bug
Oooh, good find! Looks like you’ll be able to toss 4 endless <toy> tonics into the mystic forge
Wonder what it could be!
Nothing compared to the many, many surprises I discovered throughout the entire experience of max leveling my Asura engineer. Just when I thought I got the hang of things, a new skill or trait totally mind kittened my brain and made me rethink the entire thing.
No other class has seemed to replay that same sort of magic; the engineer is a phenomenal feat of creative game design!
I’d love for the engi lovers here to weigh in on my other thread, “Be honest…”
go away, roleplayer.
Whoa, I had no idea this observation was going to be interpreted in the context of trying to RP. I’m mentioning it to discuss the change on the merits of game design.
I’m guessing that if the class’ designers thought the kits weren’t enough, they would’ve made sure that the sigils were working the same as all the other class’ weapons on the initial release of the game.
The only explanation I can find for having the change now is to appease the majority of players trying engineer who aren’t patient enough to explore the virtues of engineer to its fullest; the pre-sigil design represented what happens when you break down the walls as a game designer, and turn over any expectations of what is possible.
Sure, there were, and are, bugs with the execution, but I don’t see how that necessitated the sigil change.
Could anyone please offer some advice, tips, thoughts, and themes on effectively playing my lvl 72 Guardian? I feel lost.
- I’ve played up to ~ lvl 50 (w/ greatsword), and crafted the additional 12 levels
- I don’t have a solid understanding of how to use any of my skills
- Majority of my skills indicate that I’m supposed to be playing with others
- I prefer to play solo
Note: My main is an engineer and I love that profession; however, I’m trying expand. I thought by now that my guardian play style would’ve “emerged naturally”, but instead, I’m just piling on arcane spirits everywhere I go.
Well, gee, it feels about as strange as retaining Corruption/Accuracy/Bloodlust buffs after swapping weapons.
Could you elaborate? Wouldn’t it makes sense to retain those things when you’ve attached the sigil and then used it to kill whatever you wanted to gain the buffs?
The situation with the engineer feels different.
(edited by Killer Rhino.6794)
They will soon, but expect another nerf to all kits to compensate for the overwhelming advantage.
If kits are starting to move to the back, as you suggest, what was everyone’s rush to add sigil stats to kits? I really, really enjoyed the engineer as it was, and felt the versatility between the weapon skills and kit skills wholly unique, fun, and exciting.
What’s left for the engi, if not its kits?
Anet balances around the tPvP meta and the tPvP meta only. Get used to it or find another game to play. They don’t care about PvE.
This is the second post I’ve read that you’ve replied with the exact same comment. Anything else you want to add?
Am I the only who feels getting my rifle’s sigil’s “on kill” effect when killing something with my flamethrower is odd? Perhaps wrong, even. What does burning stuff have to do with what I want my rifle to do?
I’ve really enjoyed the Mad King Clock Tower, so I started having some fun with it: http://twitch.tv/killerrhino/b/337516528
Skill Challenge: Defeat Two-Eye Ignatl The Pirate is completely bugged!!
Posted by: Killer Rhino.6794
Bump. It would appear to still be bugged. I was there last night, and came back online hoping it would’ve been fixed after the nightly update. Still no luck. It’s the last thing I have left for BTC map completion.
/cry
Launcher missing UI w/no Internet connection
in Account & Technical Support
Posted by: Killer Rhino.6794
If you start the launcher when there is no Internet connection (no matter the network interface), the launcher won’t render its UI. Turn your Internet back on (Wi-Fi or ethernet), the everything in the UI comes up.
Just an FYI.
The engineer profession is such a fun, refreshing experience! I can’t think of many other games where I’ve seen this much creativity put into a player class. It’s incredible the amount of depth and strategy provided by various skill combinations.
The day I realized that I could napalm the crap out everything, simultaneously adding fire combo damage to my rifle, all while prepping a handful of massively explosive grenades…game over, man! GAME. OVER!
Gah, brilliant!