2012-01-21 16 views
6

C'è un modo per verificare che un nome utente Skype sia valido in un'app Web? (convalida del modulo al momento della creazione dell'account)Nome utente Skype validazione

Per validità non intendo l'utilizzo di espressioni regolari. Controlliamo facilmente per vedere se sono 6-22 caratteri, inizia con una lettera, ecc. Voglio verificare che 1) il nome utente inserito in realtà chieda l'inserimento dell'utente, in modo simile a quando convalidiamo la posta elettronica inviando un'e-mail con un link per verificarlo o 2) verificare che nel database Skype esista un utente con quel nome utente.

Grazie!

risposta

1

immagino che dovrete fare esattamente quello che hai detto: “simile a quando convalidiamo e-mail con l'invio di una e-mail con un link per verificare lo”

mi piacerebbe scavare Skype4py, è' Troveremo un esempio di ricerca di qualcuno.

modo da poter fare:

  1. una sorta di convalida giovanile di ricerca di quella persona
  2. invio di lui/lei un messaggio txt con una chiave/link per verificare l'utente

Vedi: need an python script that uses skype4py to send an instant message

+0

ho creato un piccolo gioiello rubino per la ricerca usato/nomi utente Skype disponibili, si può trovare qui https://github.com/smnplk/skype-check, ma è ancora un work in progress .. – blushrt

10

Questo potrebbe non essere molto affidabile, ma il seguente endpoint fornirà risposte diverse in base alla disponibilità di un nome utente Skype: https://login.skype.com/json/validator. Ecco due esempi di (al momento in cui scriviamo) un nome utente indisponibile e disponibile:

# Request (unavailable): 
curl -iX POST -H" Application/json" https://login.skype.com/json/validator?new_username=borist 

# Response: 
{ 
    "status": 406, 
    "status_text": "valid", 
    "data": { 
    "markup": "Skype Name not available", 
    "alternatives": true, 
    "fieldDetails": "<label>Suggestions<\/label><ul><li><label><input class=\"skypeNameSuggestion\" type=\"radio\" name=\"selectSkypeName\" value=\"borist92\"\/>borist92<\/label> <\/li><li><label><input class=\"skypeNameSuggestion\" type=\"radio\" name=\"selectSkypeName\" value=\"borist176\"\/>borist176<\/label> <\/li><li><label><input class=\"skypeNameSuggestion\" type=\"radio\" name=\"selectSkypeName\" value=\"borist417\"\/>borist417<\/label> <\/li><\/ul>" 
    } 
} 

# Request (available) 
curl -iX POST -H" Application/json" https://login.skype.com/json/validator?new_username=boris3294a 

# Response 
{ 
    "status":200, 
    "status_text":"valid", 
    "data":{"markup":"", 
    "alternatives":false, 
    "fieldDetails":""} 
} 
+0

Purtroppo, questo non funzionerà con gli account collegati. Cioè 'xyz @ live.com' avrà lo username' live: xyz'. Il servizio lo chiamerà non valido, a causa di ':' – modiX

+0

I get Access control allow origin error, quando lo uso nel mio localhost. Qualche idea per risolverlo? – Keerthivasan

1

costruzione al largo della risposta di pho79, ho fatto a gist. Il codice controlla semplicemente se il messaggio restituito indica che il nome non è disponibile e significa che è in uso. Ci sono altri messaggi che rimanda per altri errori, quindi questo è quello che sono andato con.

import requests 

def checkName(name): 
    values = { "new_username" : name } 
    r = requests.post("https://login.skype.com/json/validator", values) 
    return "not available" in r.json()[u'data'][u'markup'] 
+0

Questo funziona solo per l'inglese. Basta essere consapevoli di questo. I messaggi restituiti in "markup" sono localizzati (per esempio in giapponese: "Skype 名 は 使用 で き ま せ ん"). Ho trovato più affidabile testare quando questo messaggio è vuoto. Se è vuoto, l'ID Skype non è stato ancora preso, il che significa che al momento non è un ID Skype valido. –