eskerda / pybikes

bike sharing + python = pybikes
https://citybik.es
GNU Lesser General Public License v3.0
556 stars 165 forks source link

Add Oslo Bysykkel bike sharing network #124

Closed tuxayo closed 7 years ago

tuxayo commented 8 years ago

It doesn't seem to be supported and there is already a Python package that access it https://pypi.python.org/pypi/oslobysykkel/

Has the support of this network been considered before?

vabada commented 8 years ago

Hi, I have been investigating a bit, The package you mention is completely outdated, since the API has changed. I found an endpoint with the stations in their new website: https://oslobysykkel.no/api/internal/stations

{"stations":[{"title":"Arkitekt Rivertz Plass",
              "subtitle":"i Uelands gate",
              "ready":true,
              "center": { "latitude": 59.934934,
                           "longitude": 10.749475}
             },
             {"title": "...",
              ...

However, the available bikes and free spots seem missing; instead the "ready" field appears: I guess it states whether an station has enough bikes available (who knows where is the threshold). Any idea where to find it? It seems it was available in the previous version

eskerda commented 8 years ago

: /

We could include the stations as they are, but without the status it does not make them much interesting. ready could either be if the station is online, or if it has bikes.

Their mobile app does not even seem to work without a registered telephone number :-1:

eskerda commented 8 years ago

They used to have an spec available at http://smartbikeportal.clearchannel.no/public/mobapp/maq.asmx

eskerda commented 8 years ago

Seems Snart Klart most probably means planned station

eskerda commented 8 years ago

Ok, found this: http://oslo.map.webservice.sharebike.com:8888/

eskerda commented 8 years ago

This is even more interesting

http://oslo.map.webservice.sharebike.com:8888/json/MapService/LiveStationData?APIKey=A97C2382-BA61-432F-9518-060DE2C208C6&SystemID=cityoslo

eskerda commented 8 years ago

Not sure how down the rabbit hole we need to go

eskerda commented 8 years ago

Jackpot: https://oslobysykkel.no/api/v1/stations/availability

But not really useful, since we do not know where to map these ids

Assumedly, this should work https://oslobysykkel.no/api/v1/stations but I am afraid it needs a token

Nevermind, the browser was adding the accept html header.

> curl https://oslobysykkel.no/api/v1/stations | json_reformat
{
    "stations": [
        {
            "id": 1,
            "title": "Nylandsveien",
            "subtitle": "Mellom Norbygata og Urtegata",
            "number_of_locks": 30,
            "center": {
                "latitude": 59.91562,
                "longitude": 10.762248
            },
            "bounds": [
                {
                    "latitude": 59.915418602160436,
                    "longitude": 10.762068629264832
                },
                {
                    "latitude": 59.91565254992276,
                    "longitude": 10.762672126293182
                },
                {
                    "latitude": 59.915807169665264,
                    "longitude": 10.762433409690855
                },
                {
                    "latitude": 59.91557994562126,
                    "longitude": 10.761821866035461
                },
                {
                    "latitude": 59.915418602160436,
                    "longitude": 10.762068629264832
                }
            ]
        },
        {
            "id": 2,
            "title": "Hans Nielsen Hauges plass",
            "subtitle": "ved Åpent Bakeri",
            "number_of_locks": 21,
            "center": {
                "latitude": 59.939238,
                "longitude": 10.774279
            },
            "bounds": [
                {
                    "latitude": 59.93915186056247,
                    "longitude": 10.774401426315308
                },
                {
                    "latitude": 59.939206946912556,
                    "longitude": 10.774503350257874
                },
                {
                    "latitude": 59.93936145691839,
                    "longitude": 10.774173438549042
                },
                {
                    "latitude": 59.939300996567056,
                    "longitude": 10.774060785770416
                },
                {
                    "latitude": 59.93915186056247,
                    "longitude": 10.774401426315308
                }
            ]
        }, [...]
    ]
}
tuxayo commented 8 years ago

Great find! (I understand it's feasible?)

eskerda commented 8 years ago

Whilst this is technically feasible, this is a private endpoint. Emailed them about it, assumedly they told me it's going to be opened soon.

willosof commented 8 years ago

They said "within the week" to me over a month ago. Anyways. In the meanwhile - i found the same stuff you guys found (using the app and https MITM attack) and made a simple module for node.js: https://www.npmjs.com/package/oslobysykkel

eskerda commented 8 years ago

They said "within the week" to me over a month ago.

How strange! Jokes aside, I hadn't my hopes up either. Thing is, our stance on this is clear. We do not target private endpoints anymore. Opening a private endpoint means hiding the reality, which is a city council or a PPP not complying with the open data kool-aid.

We should find a way to list these cases on our website and somehow channel people to contact them and build pressure.

tuxayo commented 8 years ago

We should find a way to list these cases on our website and somehow channel people to contact them and build pressure.

Sounds a good idea.

As one of the first thing people want to know when coming the website is if their city network is supported. Would adding a marker on the map with a tool-tip explaining the situation do the trick?

arnabkd commented 8 years ago

We should find a way to list these cases on our website and somehow channel people to contact them and build pressure.

In terms of "pressuring" Oslobysykkel specifically, I don't think it would be fruitful right now. They are at the moment taking their first baby steps into running the citybike system for Oslo, and it would do more harm than good to force them to allocate resources to comply with open data policies (rather than actually improving the experience by adding new stations, rebalancing bikes, researching usage patterns).

But in general, yes I agree that this is a good idea.

Disclaimer: I am an avid user of Oslo bysykkel, so I am speaking mostly from a enduser pov and not necessarily from a developer pov.

willosof commented 8 years ago

They will be adding per app authentication to their currently unreleased api in september :) until then it's "open".

William tir. 31. mai 2016 kl. 12.06 skrev Arnab Datta notifications@github.com:

We should find a way to list these cases on our website and somehow channel people to contact them and build pressure.

In terms of "pressuring" Oslobysykkel specifically, I don't think it would be fruitful right now. They are at the moment taking their first baby steps into running the citybike system for Oslo, and it would do more harm than good to force them to allocate resources to comply with open data policies (rather than actually improving the experience by adding new stations, rebalancing bikes, researching usage patterns).

But in general, yes I agree that this is a good idea.

Disclaimer: I am an avid user of Oslo bysykkel, so I am speaking mostly from a enduser pov and not necessarily from a developer pov.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/eskerda/pybikes/issues/124#issuecomment-222646380, or mute the thread https://github.com/notifications/unsubscribe/AAaBktFMA_lQbLPVV2Pq3PR0N1CLOMSuks5qHAgrgaJpZM4H453I .

eskerda commented 8 years ago

They will be adding per app authentication to their currently unreleased api in september :) until then it's "open".

That sounds good!

arnabkd commented 7 years ago

Update: They posted some documentation of their API. https://developer.oslobysykkel.no/api

geirarne commented 7 years ago

Hi! I'm product manager for Oslo City Bike, among other things overseeing our public API. Anything we can do to help out?

olavxxx commented 7 years ago

Hello, I found this project via home-assistant today and I threw together Oslo Bysykkel and Bergen Bysykkel. My PR is here: https://github.com/eskerda/pybikes/pull/268

olavxxx commented 7 years ago

This can now be closed @eskerda