2012-01-21 9 views
6

Có cách nào để xác thực rằng tên người dùng Skype có hợp lệ trong ứng dụng web không? (xác nhận biểu mẫu khi tạo tài khoản)Xác thực tên người dùng Skype

Bằng hợp lệ, tôi không có ý nghĩa bằng cách sử dụng cụm từ thông dụng. Chúng tôi dễ dàng kiểm tra xem có phải là 6-22 ký tự hay không, bắt đầu bằng chữ cái, v.v. Tôi muốn xác minh rằng 1) tên người dùng đã nhập thực sự gọi người dùng nhập vào, tương tự như khi chúng tôi xác thực email bằng cách gửi email một liên kết để xác minh nó hoặc 2) xác minh rằng có tồn tại trong cơ sở dữ liệu Skype một người dùng với tên người dùng đó.

Cảm ơn!

Trả lời

1

Tôi đoán bạn sẽ phải thực hiện chính xác những gì bạn nói: “tương tự như khi chúng tôi xác nhận email bằng cách gửi email với một liên kết để xác minh nó”

tôi muốn thâm nhập vào Skype4py, bạn' sẽ tìm một ví dụ về tìm kiếm ai đó.

Vì vậy, bạn có thể làm:

  1. một số loại xác nhận đầu bằng cách tìm kiếm cho người đó
  2. gửi anh/cô ấy nhắn txt với một chìa khóa/link để xác minh người dùng của bạn

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

+0

Tôi tạo ra một viên ngọc ruby ​​nhỏ để tìm kiếm sử dụng/có sẵn tên người dùng skype, bạn có thể tìm thấy nó ở đây https://github.com/smnplk/skype-check, nhưng nó vẫn là một công việc đang tiến .. – blushrt

10

Điều này có thể không đáng tin cậy, nhưng điểm cuối sau đây sẽ cung cấp cho bạn các phản hồi khác nhau dựa trên tính khả dụng của tên người dùng Skype: https://login.skype.com/json/validator. Dưới đây là hai ví dụ về (tại thời điểm viết bài này) tên người dùng không có sẵn và có sẵn:

# 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

Đáng buồn thay, điều này sẽ không hoạt động với các tài khoản được liên kết. I E. 'xyz @ live.com' sẽ có tên người dùng' live: xyz'. Các dịch vụ sẽ gọi nó là không hợp lệ, vì của ':' – modiX

+0

tôi nhận được kiểm soát truy cập cho phép lỗi xuất xứ, khi tôi sử dụng nó trong localhost của tôi. Bất kỳ suy nghĩ để giải quyết nó? – Keerthivasan

1

Building tắt của câu trả lời pho79, tôi đã thực hiện a gist. Mã này chỉ đơn giản là kiểm tra để xem nếu thông báo trả về nói rằng tên là không có nghĩa là nó đang được sử dụng. Có một số tin nhắn khác nó gửi lại cho các lỗi khác, vì vậy đây là những gì tôi đã đi với.

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

Tính năng này chỉ hoạt động đối với tiếng Anh. Chỉ cần nhận thức được điều đó. Các thư trả về trong "đánh dấu" được bản địa hóa (ví dụ tiếng Nhật: "Skype 名 は 使用 で き ま せ ん"). Tôi thấy nó đáng tin cậy hơn để kiểm tra khi thông báo này trống. Nếu nó trống, thì Skype ID chưa được lấy, nghĩa là nó không phải là một Skype ID hợp lệ vào lúc này. –