2009-09-19 31 views
5

Tôi đang xây dựng một ứng dụng Stack Overflow nhỏ, nhưng để thu thập thông tin từ Stack Overflow về một người dùng, tôi cần biết UserID của họ. Tôi muốn người dùng có thể nhập tên hiển thị/tên người dùng của họ và cho ứng dụng để tìm UserID của họ. Tuy nhiên, tôi hiểu rằng tên người dùng không phải là duy nhất, nhưng có thể tìm thấy, thông qua C#, tất cả các id người dùng của những người có tên người dùng mà tôi chỉ định? Bạn có thể cho tôi một số mã mẫu cho điều này không? Điều này có thể có thể được thực hiện bằng cách nào đó bằng cách quét màn hình trang Người dùng, nhưng tôi không chắc chắn cách thực hiện loại điều này.Tìm UserID của người dùng Stack Overflow bằng Tên hiển thị của họ trong C#?

Nhân tiện, tôi không muốn sử dụng đổ dữ liệu để thực hiện việc này. Tôi chỉ muốn bằng cách nào đó tìm thấy thông tin này thông qua trang Người dùng, hoặc một cái gì đó tương tự.

Nhân tiện, tôi đã đăng một similar question on Meta Stack Overflow và được hướng dẫn đăng bài này tại đây, vì Stack Overflow là nơi nó thuộc về!

+2

tôi sắp đề nghị sử dụng các bãi chứa dữ liệu, nhưng bạn nói bạn không muốn sử dụng đối với một số lý do không xác định. Nếu bạn sàng lọc tất cả người dùng trên Stack Overflow, bạn * sẽ * bị cấm. –

+0

@Greg Tôi sẽ? Rất tiếc ... tôi không muốn quét màn hình tất cả người dùng, tất cả những gì tôi muốn làm là đi qua trang Người dùng cho biết người dùng nào tồn tại (trang Người dùng chính, không phải trang tiểu sử cá nhân). Điều này dường như là không thể. –

Trả lời

7

previous version của câu trả lời này không hoạt động nữa. Nó có thể được sửa đổi để hoạt động trở lại, nhưng không cần thiết nữa – những ngày này, có official API. Thông số inname đến the /users method là thông tin bạn đang tìm kiếm.

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

+0

Cảm ơn bạn! Điều này thực sự đã giúp! Nhân tiện, làm thế nào bạn tìm thấy điều này? –

+0

Wow, cảm ơn bạn rất nhiều! –

+0

Điều này không hoạt động. Có lẽ điều này đã thay đổi trong thời gian chờ đợi? –

2

Bạn sẽ cần thu thập dữ liệu thông qua tất cả người dùng (https://stackoverflow.com/users/( 0 đến hiện tại) /) để trả lời câu hỏi đó.

+0

tôi đã cố gắng tìm hiểu xem id người dùng có tuần tự hay không và câu trả lời này ngụ ý rằng chúng là tuần tự. – the0ther

3

Tôi ghét phải nói điều đó, nhưng bạn có thể muốn yêu cầu ID người dùng.

Vấn đề không phải là có rất nhiều người dùng có tiềm năng trùng lặp, bởi vì nếu đó là trường hợp bạn có thể lưu trữ bộ nhớ cache. Vấn đề là bất kỳ người dùng nào cũng có thể thay đổi tên hiển thị của họ bất kỳ lúc nào và vì vậy bạn không thể tin tưởng vào bộ nhớ cache của mình.

Một điều bạn có thể làm là xây dựng một dịch vụ web từ kho bãi wiki cộng đồng mới nhất, giữ cho cập nhật và chỉ làm cho người dùng biết rằng nếu họ thay đổi tên người dùng, họ sẽ cần phải đợi cho tháng tiếp theo phát hành dữ liệu cho tên mới để hoạt động.

+0

Cảm ơn bạn! Tôi chỉ tự hỏi, làm thế nào để bạn thay đổi id người dùng của bạn? Có liên quan đến việc liên kết OpenID mới với tài khoản của bạn không? Tôi đã làm điều đó ngày hôm nay, vì vậy tôi sẽ xem nếu id của tôi thay đổi. –

+0

Tôi đoán nó được tạo ngẫu nhiên khi tài khoản SO của bạn được tạo trong cơ sở dữ liệu. việc thay đổi openid sẽ không thay đổi nó bởi vì một người dùng có thể có nhiều id mở. Bạn sẽ phải tạo một tài khoản người dùng mới để có được một ID khác nhau – TJB

+0

@TJB ya đó là những gì tôi nghĩ, ngoại trừ việc nó không phải ngẫu nhiên, các ID đang tăng dần về số người đăng ký trước. Jeff có id # 1. Các thành viên khác trong nhóm có id đơn. Nó được sắp xếp theo thời gian! Những người đăng ký quặng, id càng cao được gán cho bạn sẽ được! –

Các vấn đề liên quan