【发布时间】:2015-05-19 13:19:38
【问题描述】:
我有一个用户列表。我正在尝试使用 API:Users 检索他们的注册、编辑计数和性别,并使用 API:Usercontribs 检索贡献数据。
因为对 API 比较温和,我必须在每个请求中放入一堆用户名,并且我需要匹配他们的 userID,以便能够合并来自两个 API 的结果。
我遇到了一个奇怪的问题:每种方法都检索到相当多的具有不同用户 ID 的用户。例如,如果您从 API:Users 查询用户名“December21st2012Freak”的数据,您将获得用户 ID 14281125,但从 API:Usercontribs 请求相同的用户名,用户 ID 返回为 10141256。 另一个例子是用户名“The Sunshine Man”,在 API:Users 中检索到的用户 ID 为 4857299,通过 API:Usercontribs 检索到用户 ID 4302884。
我不明白为什么会有这样的不一致。
这里是确切的查询:
返回:
{
"query": {
"users": [
{
"userid": 14281125,
"name": "December21st2012Freak",
"editcount": 0,
"registration": "2011-03-29T02:14:36Z",
"groups": [
"*",
"user"
],
"emailable": "",
"gender": "unknown"
},
{
"userid": 4857299,
"name": "The Sunshine Man",
"editcount": 0,
"registration": "2007-07-13T20:00:58Z",
"groups": [
"*",
"user"
],
"gender": "unknown"
}
]
}
}
以及 Usercontribs 查询:
结果:
{
"batchcomplete": "",
"continue": {
"uccontinue": "20090904033705|311775264",
"continue": "-||"
},
"query": {
"usercontribs": [
{
"userid": 10141256,
"user": "December21st2012Freak",
"pageid": 24217201,
"revid": 311775169,
"parentid": 0,
"ns": 3,
"title": "User talk:MsD723",
"timestamp": "2009-09-04T03:36:13Z",
"new": "",
"minor": "",
"top": "",
"comment": "Added welcome template to user talk page. using [[WP:FRIENDLY|Friendly]]",
"size": 1458
},
{
"userid": 10141256,
"user": "December21st2012Freak",
"pageid": 24217203,
"revid": 311775198,
"parentid": 0,
"ns": 3,
"title": "User talk:Oneseeker2",
"timestamp": "2009-09-04T03:36:32Z",
"new": "",
"minor": "",
"top": "",
"comment": "Added welcome template to user talk page. using [[WP:FRIENDLY|Friendly]]",
"size": 1458
},
{
"userid": 10141256,
"user": "December21st2012Freak",
"pageid": 24217208,
"revid": 311775231,
"parentid": 0,
"ns": 3,
"title": "User talk:Carolynhinchey",
"timestamp": "2009-09-04T03:36:46Z",
"new": "",
"minor": "",
"top": "",
"comment": "Added welcome template to user talk page. using [[WP:FRIENDLY|Friendly]]",
"size": 1458
}
]
}
}
和
结果:
{
"batchcomplete": "",
"continue": {
"uccontinue": "20070517145725|131549160",
"continue": "-||"
},
"query": {
"usercontribs": [
{
"userid": 4302884,
"user": "The Sunshine Man",
"pageid": 11271016,
"revid": 131518067,
"parentid": 131517319,
"ns": 4,
"title": "Wikipedia:Miscellany for deletion/Portal:Aquinas College, Perth",
"timestamp": "2007-05-17T11:48:17Z",
"comment": "/* [[Portal:Aquinas College, Perth]] */ Delete",
"size": 1773
},
{
"userid": 4302884,
"user": "The Sunshine Man",
"pageid": 7797923,
"revid": 131547208,
"parentid": 131525587,
"ns": 3,
"title": "User talk:Ryan Postlethwaite",
"timestamp": "2007-05-17T14:47:29Z",
"comment": "HeHe",
"size": 49019
},
{
"userid": 4302884,
"user": "The Sunshine Man",
"pageid": 11247929,
"revid": 131547970,
"parentid": 131543922,
"ns": 4,
"title": "Wikipedia:Requests for adminship/Bobak",
"timestamp": "2007-05-17T14:51:19Z",
"comment": "Support",
"size": 16492
}
]
}
}
【问题讨论】:
-
您能提供示例查询吗?
-
@Tgr,我在问题中添加了确切的查询。
-
谢谢!这不应该发生。我提交了一个错误报告 (T99929)。
-
API 不提供性别。它只提供grammatical gender preferences。
标签: api mediawiki difference mediawiki-api