Check if twitter username exists

前端 未结 9 1599
旧巷少年郎
旧巷少年郎 2021-02-05 10:28

Is there a way to check if a twitter username exists? Without being authenticated with OAuth or the twitter basic authentication?

相关标签:
9条回答
  • 2021-02-05 10:47

    As API v1 is no longer available, here is another way to check if a twitter account exists. The page headers of a non existing account contain 404 (page not found).

    function twitterAccountExists($username){
        $headers = get_headers("https://twitter.com/".$username);
        if(strpos($headers[0], '404') !== false ) {
            return false;
        } else {
            return true;
        }
    }
    
    0 讨论(0)
  • 2021-02-05 10:49

    You can try to grab the http://twitter.com/username page and read the response to see if you get the "Sorry, that page doesn’t exist!" page.

    Edit:

    As @Pablo Fernandez mentioned in a comment, it will be better (faster, more reliable) to check the response header, which will be "404 not-found" if the user doesn't exist.

    0 讨论(0)
  • 2021-02-05 10:50

    You can also use the API with username :

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

    Will give you :

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

    Or if not exist :

    <?xml version="1.0" encoding="UTF-8"?>
    <hash>
      <request>/1/users/show.xml?screen_name=tarnfeldezf</request>
      <error>Not found</error>
    </hash>
    
    0 讨论(0)
  • 2021-02-05 10:53

    You can try:

    <?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!";
    } 
    ?>
    
    0 讨论(0)
  • 2021-02-05 10:58

    According to the api docs you can pass an email address to the user/ show method, I would assume that if a user didn't exist you'd get back a 404, which should allow you to determine whether or not the user exists.

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

    result if not exist :

    <?xml version="1.0" encoding="UTF-8"?> 
    <hash> 
      <request>/users/show.xml?email=tur...@example.com</request> 
      <error>Not found</error> 
    </hash
    
    0 讨论(0)
  • 2021-02-05 11:05

    As of right now, you're better off using the API the signup form uses to check username availability in realtime. Requests are of the format:

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

    And give you a JSON response with a valid key giving you a true if the username can be registered:

    {"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!"}
    

    The reason this is better than checking for 404 responses is that sometimes words are reserved (like 'root' above), or a username is actually taken but for some reason the account is gone from the Twitter front end.

    0 讨论(0)
提交回复
热议问题