2012-01-21 18 views
6

Czy istnieje sposób sprawdzenia, czy nazwa użytkownika Skype jest poprawna w aplikacji internetowej? (Zatwierdzenie formularza po utworzeniu konta)Sprawdzanie poprawności nazwy użytkownika Skype

Przez ważność nie mam na myśli używania wyrażeń regularnych. Łatwo sprawdzamy, czy ma 6-22 znaków, zaczyna się od litery itp. Chcę sprawdzić, czy 1) wprowadzona nazwa użytkownika rzeczywiście wywołuje użytkownika wprowadzającego, podobnie jak podczas sprawdzania poczty e-mail przez wysłanie e-maila z link do weryfikacji lub 2) sprawdź, czy w bazie danych Skype znajduje się użytkownik o tej nazwie użytkownika.

Dzięki!

Odpowiedz

1

Chyba musisz zrobić dokładnie to, co powiedział: „podobny do tego, kiedy możemy potwierdzić e-mail, wysyłając e-mail z linkiem do tego zweryfikować”

będę kopać w Skype4py, ty” Znajdziesz przykład wyszukiwania kogoś.

Więc można zrobić:

  1. pewnego rodzaju wczesnej walidacji szukając tej osoby
  2. wysyłając mu/jej wiadomość txt z kluczem/linku w celu weryfikacji użytkownika

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

+0

stworzyłem małą ruby ​​gem do przeszukiwania/dostępna nazwy użytkownika Skype, można go znaleźć tutaj https://github.com/smnplk/skype-check, ale wciąż jest w toku .. – blushrt

10

To może nie być zbyt wiarygodne, ale następujący punkt końcowy daje różne odpowiedzi w zależności od dostępności nazwy użytkownika Skype: https://login.skype.com/json/validator. Oto dwa przykłady (w momencie pisania tego tekstu) niedostępnej i dostępnego Nazwa użytkownika:

# 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

Niestety, nie będzie działać z kontami, które są połączone. To znaczy. 'xyz @ live.com' będzie miał nazwę użytkownika' live: xyz'. Usługa nazwie go nieważnym z powodu ':' – modiX

+0

Otrzymuję błąd początku kontroli dostępu, gdy używam go w moim localhost. Jakieś myśli, żeby to rozwiązać? – Keerthivasan

1

budynku off odpowiedzi pho79 jest, zrobiłem a gist. Kod po prostu sprawdza, czy zwrócona wiadomość mówi, że nazwa jest niedostępna, co oznacza, że ​​jest używana. Jest kilka innych komunikatów, które odsyła z powodu innych błędów, więc to jest to, co zrobiłem.

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

To działa tylko w języku angielskim. Po prostu bądź tego świadomy. Komunikaty zwracane w "znacznikach" są zlokalizowane (np. W języku japońskim: "Skype 名 は 使用 で き ま せ ん"). Zauważyłem, że testowanie jest bardziej wiarygodne, gdy ta wiadomość jest pusta. Jeśli jest pusty, identyfikator Skype ID nie był jeszcze zajęty, co oznacza, że ​​obecnie nie jest to prawidłowy identyfikator Skype. –

Powiązane problemy