OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2019-04-09 21:23:56

sharport
Member
Registered: 2019-04-09
Posts: 6

oauth/request_token

ciao a tutti ,
sono nuovo nel forum e vi chiedo se qualcuno può darmi una mano per accedere alla lettura delle mappe di osm.

riepilogo cosa ho fatto :
mi sono iscritto a osm e ho creato una applicazione fornendo un url e ricevendo questi dati

Chiave del consumatore: GsRr55jH...........
Codice segreto dell'utilizzatore: egTRXqO.........
URL del token di richiesta: https://www.openstreetmap.org/oauth/request_token
URL del token di accesso: https://www.openstreetmap.org/oauth/access_token
Autorizza URL: https://www.openstreetmap.org/oauth/authorize

La mia necessità è di aggiungere le mappe al nostro CRM ottenendo prima i geocode dei clienti ( fornendo gli indirizzi)  e poi i tile delle mappe fornendo lat e long.

premetto che sono un programmatore c# e la applicazione è MVC 4.0 e che volevo accedere a osm senza librerie di terze parti.

ho trovato un buon riferimento qui https://stackoverflow.com/questions/473 … ng-c-sharp   ed un altro qui https://stackoverflow.com/questions/106 … -libraries dove spiega la logica ...

Ora il punto è che il server osm continua a rispondere server error 500 e non capisco perchè.  ( se volete vi posto poi anche il codice ). ma la cosa strana è che se io apro una pagina di un browser e scrivo https://www.openstreetmap.org/oauth/request_token mi da lo stesso errore ...

la domanda è :  E' sbagliato l'url o sono i parametri errati ??

qualcuno mi può dare una mano ??

grazie a tutti

giorgio

PS : per curiosità vi posto la signaturebase ottenuta dai vari passaggi :
GET%26https%3A%2F%2Fwww.openstreetmap.org%2Foauth%2Frequest_token%26oauth_consumer_key%3DGsRr55jHSSv8VWnMgLHjaVKZxgvca4UGOo4Tk8OG%26oauth_nonce%3DMTU1NDgzOTgzMg%253D%253D%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1554839832%26oauth_token%3D%26oauth_version%3D1.0

... che a me pare stia in piedi, cioè mi aspetteri una bad request ma non un 500.

Offline

#2 2019-04-11 07:29:37

Andreas Lattmann
Member
Registered: 2016-11-04
Posts: 28

Re: oauth/request_token

Si effettivamente è strano che restituisca un Internal Server Error.
Due cose: il forum è poco attivo perché la comunita italiana preferisce la Mailing List.
C'è una sezione nel forum / ml per i developer .
Ora ho girato la tua richiesta in ml, aspetto risposta e la posto qua.
Appena ho un attimo di tempo ti fornisco degli strumenti utili per lavorare con OSM.
Terzo, hai verificato le policy per le chiamate ad OSM?
P.S.: rimango a disposizione per ulteriori domande.

Offline

#3 2019-04-11 09:55:23

sharport
Member
Registered: 2019-04-09
Posts: 6

Re: oauth/request_token

ok , grazie Andreas
aspetto news

Offline

#4 2019-04-11 16:16:09

IlBano
Member
Registered: 2019-04-11
Posts: 4

Re: oauth/request_token

sharport wrote:

...

La mia necessità è di aggiungere le mappe al nostro CRM ottenendo prima i geocode dei clienti ( fornendo gli indirizzi)  e poi i tile delle mappe fornendo lat e long.

Se devi mostrare mappe o fare semplice geocoding, e quindi non devi editare la mappa, non ti serve avere un token di accesso.

Il problema nasce però dall'uso che ne vuoi fare perchè i sistemi della OSM foundation che ti possono dare questi servizi "gratis" (ovvero il tile server [1] e il geocoder [2]) non sono dimensionati per gestire accessi massivi da applicazioni.

Se superi i limiti delle usage policy [3] e [4] devi attivare questi servizi su tue istanze oppure affidarti a servizi di terze parti come Mapbox (che per quanto mi risulta prevede anche un free tier). In questo modo eviti sorprese per i tuoi utenti come sconnessioni dai siti OSM per uso improprio.

Ciao

[1] https://wiki.openstreetmap.org/wiki/Tile_servers
[2] https://wiki.openstreetmap.org/wiki/Nominatim
[3] https://operations.osmfoundation.org/policies/tiles/
[4] https://operations.osmfoundation.org/po … nominatim/

Offline

#5 2019-04-15 08:40:08

sharport
Member
Registered: 2019-04-09
Posts: 6

Re: oauth/request_token

ciao new member,
( scusa per il ritardo con cui ti scrivo ma ero fuori sede)

Ti ringrazio per le info che mi hai dato , sono state molto utili. Innanzi tutto volevo dirti che l'uso che ne vogliamo fare noi è molto limitato , si tratta di qualche decina di chiamate ogni tanto, cioè quando i commerciali vanno a trovar i clienti.
Detto ciò , in realtà noi vogliamo utilizzare osm perchè ci piace.

Dopo le tue dritte ho riletto meglio le policie s in particolare queste  "HTTP Referer or User-Agent" e mi sono accorto che le chiamate che io facevo non avevamo  HTTP Referer o  User-Agent  ( se ho capito bene i concetti ) in quanto sono chiamate da c# dal server. 

allora ho inserito nella chiamata  "https://nominatim.openstreetmap.org/search?" ...  anche  la keyword email={nome user osm} .....e improvvisamente tutto ha funzionato. ( però non cè scritto da nessuna parte ...acc)
Ora vorrei provare ancora la chiamata a  "//router.project-osrm.org/viaroute?"....

..allora. mi potresti spiegare questo meccanismo ??? ..e che cosa dovrei mettere nella chiamata c# come "HTTP Referer o  User-Agent" ??.

ultima cosa ..che significa editare le mappe ??

ciao e grazie ancora per l'aiuto.

@Andreas Lattmann   se trovi degli snippet di  codice funzionante te ne sono grato ..

Offline

#6 2019-04-15 10:07:11

sharport
Member
Registered: 2019-04-09
Posts: 6

Re: oauth/request_token

scusa IIBano ,
Ho provato ad inserire nella chiamata  ( nel mio primo post ) :

	 var httpWebRequest = (HttpWebRequest) WebRequest.Create(url);
	        httpWebRequest.Method = "GET";
	        httpWebRequest.Referer="http://crm.miosito.net";

..pensando di avere risolto il problema ...e invece NO. Stesso errore 500 internal server error .

Offline

#7 2019-04-15 15:11:16

IlBano
Member
Registered: 2019-04-11
Posts: 4

Re: oauth/request_token

E' obbligatorio passare uno user agent nella GET, mentre non lo è per il referer.

Lo user agent è una stringa arbitraria che identifica il tuo client HTTP e te la inventi... ad esempio mycrm1.0. Più è specifica e più sei certo che identifichi univocamente la tua app.
Per settarla usa la proprietà opportuna della classe httpWebRequest perchè non penso ci sia un default.

La chiamata a Nominatim con il parametro email (e un indirizzo valido come valore) mi sembra una buona idea.

Vedo che ora hai bisogno anche di fare routing... anche qui proverei con Mapbox o le API di www.openrouteservice.org.

Editare le mappe significa chiamare le API di Openstreetmap per inserire nuovi elementi nella mappa come nodi o way

Ciao

Offline

#8 2019-04-16 14:19:53

sharport
Member
Registered: 2019-04-09
Posts: 6

Re: oauth/request_token

grazie IIBano,
ero arrivato a fuochino... ora tu mi dato la dritta che cercavo... con user agent ( che non sapevo fosse obbligatorio) .. ora provo.

per quanto riguarda il routing non posso chiamare  https://router.project-osrm.org/viaroute?  ???  che vantaggi ho nell'utilizzo di Mapbox ??

Offline

#9 2019-04-16 14:26:32

sharport
Member
Registered: 2019-04-09
Posts: 6

Re: oauth/request_token

Ciao IIBano , ho provato nella chiamata a inserire   httpWebRequest.UserAgent = "crm.miocrm.net";  ma mi continua a dare server error 500  con lo status a  WebExceptionStatus.ProtocolError=7

continuo a non capire l'errore...
qualche altra indicazione ??

Offline

#10 2019-04-16 16:08:51

IlBano
Member
Registered: 2019-04-11
Posts: 4

Re: oauth/request_token

per quanto riguarda il routing non posso chiamare  https://router.project-osrm.org/viaroute?  ???  che vantaggi ho nell'utilizzo di Mapbox ??

A quell'indirizzo da browser si ottiene un bel not found. Dove l'hai trovato ?

Mi sembra comunque che nel sito di project OSRM vengano utilizzati i servizi di Mapbox

Per quanto riguarda il 500 qual'è l'url completo della chiamata che fai ? Hai provato a metterlo in un browser e a vedere cosa succede ?

Offline

Board footer

Powered by FluxBB