2009-09-19 11 views
5

Sto costruendo una piccola applicazione Stack Overflow, ma per raccogliere informazioni da Stack Overflow su un utente ho bisogno di conoscere il loro UserID. Vorrei che l'utente fosse in grado di immettere nome di visualizzazione/nome utente e che l'applicazione trovasse il proprio ID utente. Tuttavia, capisco che nomi utente non sono univoci, ma sarebbe possibile trovare, attraverso il C#, tutti gli user-id di persone con un nome utente che ho specificato? Puoi darmi qualche codice di esempio per questo? Questo probabilmente può essere fatto in qualche modo raschiando la pagina degli utenti, ma non sono sicuro di come realizzare questo tipo di cose.Trovare l'ID utente di un utente di overflow dello stack con il nome visualizzato in C#?

A proposito, io non voglio utilizzare i dati-dump per raggiungere questo obiettivo. Vorrei solo in qualche modo trovare queste informazioni attraverso la pagina Utenti, o qualcosa di simile.

A proposito, ho inviato un similar question on Meta Stack Overflow e mi è stato chiesto di postarlo qui, poiché Stack Overflow è il luogo di appartenenza!

+2

Stavo per suggerire utilizzando il dump dei dati, ma hai detto che non volevi da utilizzare che per qualche motivo non specificato. Se si esegue lo screen-scrap di tutti gli utenti su Stack Overflow, * verrà * bannato. –

+0

@Greg lo farò? Hmm ... non voglio screen-scrapare tutti gli utenti, tutto quello che voglio fare è passare attraverso la pagina Users che dice quali utenti esistono (la pagina principale degli utenti, non le singole pagine del profilo). Questo sembra impossibile. –

risposta

7

Il previous version di questa risposta non funziona più. Potrebbe essere modificato per funzionare di nuovo, ma non è più necessario – in questi giorni, c'è lo official API. Il parametro inname su the /users method è quello che stai cercando.

Esempio: http://api.stackexchange.com/2.2/users?order=desc&sort=reputation&inname=steve&site=stackoverflow

+0

Grazie! Questo ha davvero aiutato! A proposito, come lo hai trovato? –

+0

Wow, grazie mille! –

+0

Questo non funziona. Forse questo è cambiato nel frattempo? –

2

È necessario eseguire la scansione di tutti gli utenti (https://stackoverflow.com/users/( 0 alla corrente) /) per rispondere a questa domanda.

+0

stavo cercando di scoprire se gli ID utente sono sequenziali e questa risposta implicherebbe che siano sequenziali. – the0ther

3

Odio dirlo, ma si potrebbe desiderare di chiedere per l'ID utente.

Il problema non è che ci sono un sacco di utenti con i potenziali duplicati, perché se così fosse si potrebbe semplicemente memorizzare nella cache le ricerche. Il problema è che ogni utente può cambiare il nome visualizzato in qualsiasi momento, quindi non ti puoi fidare della tua cache.

L'unica cosa che si potrebbe fare è creare un servizio Web dall'ultimo dump di wiki della comunità, tenerlo aggiornato e solo far sapere agli utenti che se cambiano il loro nome utente dovranno aspettare il mese successivo data di rilascio del nuovo nome per funzionare.

+0

Grazie! Mi sto solo chiedendo, come cambi il tuo ID utente? È legato all'associazione di un nuovo OpenID al tuo account? L'ho fatto oggi, quindi vedrò se il mio ID è cambiato. –

+0

Sto indovinando il suo generato casualmente quando il tuo account SO viene creato nel database. cambiare openid non lo cambierebbe perché un utente può avere più ID aperti. Si dovrà creare un nuovo account utente per ottenere un diverso ID – TJB

+0

@TJB ya che è quello che penso, se non che non è casuale, gli ID sono ascendenti #s in termini di che si registra per primo. Jeff ha id # 1. Gli altri membri del team hanno ID a una sola cifra. È ordinato per tempo! Le persone minerale che si registrano, più alto sarà l'ID che ti sarà assegnato! –

Problemi correlati