【发布时间】:2015-02-02 18:38:37
【问题描述】:
我想知道是否有任何方法可以使用 Instagram API 检查用户验证徽章?
我看到https://api.instagram.com/v1/users/{user-id} 如果用户通过验证不会返回,但是如果你查看用户页面的源代码,你可以看到它有一个名为 isVerified 键的布尔值和它是用户的 json 结构中的值。
谢谢!
【问题讨论】:
标签: instagram-api
我想知道是否有任何方法可以使用 Instagram API 检查用户验证徽章?
我看到https://api.instagram.com/v1/users/{user-id} 如果用户通过验证不会返回,但是如果你查看用户页面的源代码,你可以看到它有一个名为 isVerified 键的布尔值和它是用户的 json 结构中的值。
谢谢!
【问题讨论】:
标签: instagram-api
好的,这不是一个很好的答案,但这是我完成相同任务的方法。一旦我从 API 获得用户名,我就会在他们的个人资料页面的来源上执行以下正则表达式:
$response = file_get_contents('https://instagram.com/'.$username);
if (preg_match('/"user":\{"username":"'.$username.'",.*?"isVerified":true\},"__path":".*?'.$username.'.*?"/s', $response) || preg_match('/<meta content=".*?official.*?account.*?" name="description" \/>/is', $response)) {
print "VERIFIED USER!";
}
正如我之前所说的那样,这非常 hacky,但 API 目前不提供 isVerified 值。在他们这样做之前,我正在使用这个正则表达式。它查找您引用的 JSON 结构的 "isVerified":true 部分。 (例如:https://instagram.com/taylorswift)
我们还添加了一个额外的检查,如果元内容标签中包含“官方帐户”,那么我们认为它是官方的。 (例如:https://instagram.com/3doorsdown)我们添加此检查是因为 Instagram 于 2014 年开始进行验证帐户,并且有相当多的名人尚未获得验证徽章。它应该会拾起一些碎片,但也很可能会带来误报。
注意:如果 Instagram 更改其页面上的 JSON 结构或元标记,此解决方案将失效,因此使用风险自负。我们只需要一个脚本来检查少量用户名以获取经过验证的徽章,我很快就想出了这个。最好的解决方案是在他们更新 API 时。
【讨论】: