从MediaWiki API获取许可信息



我想在我的网站中显示维基共享资源中的图像(作为链接),使用以下mediawiki-api调用来搜索图像:

https://en.wikipedia.org/wiki/Special ApiSandbox # action = query&列表= allimages&格式= json& aifrom = LG % 20 g4& aiprop =维% 7 cmime& ailimit = 5

返回一个搜索结果,其中包含与我的查询匹配的所有图像。但是我没有在回复中看到许可信息。我可以在aiprop中使用"user"检索上传者信息,但是如何检索许可信息(如CC-BY-SA)呢?

https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query∝imageinfo&format=json&iiprop=dimensions%7Cmime%7Cextmetadata&iiextmetadatafilter=LicenceShortName%7CUsageTerms%7CLicenseUrl%7CAttributionRequired&generator=allimages&gaifrom=LG%20G4&gailimit=5

参见生成器和imageinfo/extmetadata API

如前所述,extmetadata API扩展提供许可信息。结果格式有点冗长,有些字段用不同的拼写重复,因此我创建了PHP包装器image-attribution:

$attribution = commons_image_attribution("Loewe_frontal.JPG");
$credit = $attribution['credit'];

响应具有以下结构(此处以JSON形式给出):

{
    "src": "https://upload.wikimedia.org/wikipedia/commons/a/ac/Loewe_frontal.JPG",
    "url": "https://commons.wikimedia.org/wiki/File:Loewe_frontal.JPG",
    "description": "Portrait of a young lion (Panthera leo), taken at Tierpark Hellabrunn, Munich.",
    "creator": "Martin Falbisoner",
    "date": "2012-07-14 15:39:06",
    "attribution": true,
    "license": "CC BY-SA 3.0",
    "credit": "CC BY-SA 3.0: Martin Falbisoner"
}