检查是否存在推特用户名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查是否存在推特用户名相关的知识,希望对你有一定的参考价值。

有没有办法检查是否存在推特用户名?没有通过OAuth或twitter基本身份验证进行身份验证?

答案

根据api文档,您可以将电子邮件地址传递给user / show方法,我认为如果用户不存在,您将获得404,这应该允许您确定用户是否存在。

例如:http://twitter.com/users/show.xml?email=t...@example.com

结果如果不存在:

<?xml version="1.0" encoding="UTF-8"?> 
<hash> 
  <request>/users/show.xml?email=tur...@example.com</request> 
  <error>Not found</error> 
</hash
另一答案

截至目前,您最好使用注册表单用于实时检查用户名可用性的API。请求的格式为:

https://twitter.com/users/username_available?username=whatever

并使用valid密钥为您提供JSON响应,如果用户名可以注册,则为true:

{"valid":false,"reason":"taken","msg":"Username has already been taken","desc":"That username has been taken. Please choose another."}
{"valid":true,"reason":"available","msg":"Available!","desc":"Available!"}
{"valid":false,"reason":"is_banned_word","msg":"Username is unavailable","desc":"The username "root" is unavailable. Sorry!"}

这比检查404响应更好的原因是有时会保留单词(如上面的“root”),或实际使用用户名,但由于某种原因,该帐户已从Twitter前端消失。

另一答案

您还可以将API与用户名一起使用:

例如:http://api.twitter.com/1/users/show.xml?screen_name=tarnfeld

会给你 :

<?xml version="1.0" encoding="UTF-8"?>
<user>
  ...................
  <screen_name>tarnfeld</screen_name>
  <location>Portsmouth, UK</location>
  .................
  </status>
</user>

或者如果不存在:

<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <request>/1/users/show.xml?screen_name=tarnfeldezf</request>
  <error>Not found</error>
</hash>
另一答案

由于API v1不再可用,这是检查Twitter帐户是否存在的另一种方法。非现有帐户的页眉包含404(找不到页面)。

function twitterAccountExists($username){
    $headers = get_headers("https://twitter.com/".$username);
    if(strpos($headers[0], '404') !== false ) {
        return false;
    } else {
        return true;
    }
}
另一答案

以下是它在php上的工作原理:

$user_infos = 'http://api.twitter.com/1/users/show.xml?screen_name='.$username;

if (!@fopen($user_infos, 'r'))
{
return false;
}
return true;
另一答案

您可以尝试抓住http://twitter.com/username页面并阅读回复,看看您是否收到“抱歉,该页面不存在!”页。

Edit:

正如@Pablo Fernandez在评论中提到的那样,检查响应头会更好(更快,更可靠),如果用户不存在,将会是“404 not-found”。

另一答案

这对我有用,接近sferik发布的内容。

def twitter_user_exists?(user)
   Twitter.user(user)
   true
rescue Twitter::Error::NotFound
   false
end
另一答案

使用Ruby,您可以安装twitter gem,然后定义以下方法:

require 'twitter'

def user_exists?(user)
  Twitter.user(user)
  true
rescue Twitter::NotFound
  false
end

然后,只需将Twitter用户名或ID传递给您的方法,如下所示:

user_exists?("sferik") #=> true
user_exists?(7505382) #=> true
另一答案

你可以试试:

<?php
$user = "toneid";
$contents = @file_get_contents('http://www.twitter.com/'.$user);
if (!$contents) {
    // Report error
    echo "Not a valid user";
    } else {
    // If is a valid url
    echo "OK!";
} 
?>

以上是关于检查是否存在推特用户名的主要内容,如果未能解决你的问题,请参考以下文章

检查Android代码中是不是存在用户名

检查用户名是不是存在于数据库中

如何检查用户名是不是存在于数据库中

PHP - MYSQL - 如果用户名存在则检查特定用户名的密码[重复]

Firestore/Swift 4:检查用户名是不是存在?

使用 PHP 检查用户名和电子邮件是不是已经存在 [重复]