• ベストアンサー

TwitterIDからユーザーネームの取得

PHP環境で認証は通っているとします。 TwitterIDがデータベースに登録されていてそれをもとにユーザーネームを取得したいです。 TwitterIDは認証に使っている人とは別の人のIDです。 こういうことは可能でしょうか よろしくお願いします。 認証にはHybridAuthを使っています。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

users/showを使えば可能です。 https://dev.twitter.com/docs/api/1.1/get/users/show HybridAuthのdocumentを読む限り, $twitter->api()->get('users/show.json?user_id=12345') のようにアクセスできそうです。 http://hybridauth.sourceforge.net/userguide/Access_IDps_APIs.html

momiziiro
質問者

お礼

データとることができましたー! ありがとうございます!!

関連するQ&A

  • PHPのソケット通信について

    PHPにおいてのソケット通信についての質問です。マイページ機能をもたせたシステムの構築をしています。 マイページで認証を行い、そのユーザのユーザIDと乱数を一緒にデータベースに認証成功時に格納しています。 そして、マイページから別サーバへリンクしたときにPOSTしてこのユーザIDと乱数を送ります。 ユーザがマイページを経由して別サーバにアクセスしてきているかどうかということを確認するために、別サーバからこのマイページを運用するサーバに対してユーザIDと乱数をソケット通信によって送り、データベースに登録されているかどうかを別サーバ上のページを遷移するたびに確認したいのです。 データベースに登録されているユーザなら、マイぺージを経由してアクセスしてきているということでページを表示させて、登録されていないなら、マイページのログインページを表示させるようにしたいです。 Socket通信について調べてみたもののわかりにくいものが多くて、理解しかねますので、よろしくお願いします。 サンプルのコードをのせていただくと、なお嬉しいです。 開発環境は OS windows vista 言語 PHP5 サーバ Apache DBMS MYSQL です。 よろしくお願いします。

    • 締切済み
    • PHP
  • Facebookユーザーネーム(ユニークID)

    Facebookで、ユーザーネーム(ユニークURL)を変更しました。しかし、変わったのはFacebookメールアドレスのみで、設定の画面では、「ユーザーネームが設定されていません」と出ます。そこで、もう一度同じユーザーネームで登録しようとしましたが、「このユーザーネームは選択できません」と出ます。少し待ったら変更が反映されるのでしょうか?1日経ちましたが、変わっていません。もうこのユーザーネームは使えない、新しいので登録するしかないのでしょうか?他のユーザーネームなら登録できるのです。。。 調べてもまったく出てこないので、ほんとに困っています。よろしくお願いいたします。

  • Basic認証: PHP_AUTH_USERが

    環境:CentOS6.3, PHP Version 5.3.3, Apache/2.2.15 (CentOS) ,MySQL Server version 5.1.61 (Client API versionも同じ) です。テーブルmembers にname,password の2欄があり、データがそれぞれ、taro , abc と入っています。  ここで phpを下記のように書きました。 1 <?php 2 // データベースに接続      中略 7 8 // 認証処理(Basic認証) 9 if (!isset($_SERVER["PHP_AUTH_USER"])) { 10 header("WWW-Authenticate: Basic"); 11 header("HTTP/1.0 401 Unauthorized"); 12 exit; 13 }else{ 14 var_dump(($_SERVER)." --line_a"."<br />"); 15 print ("ユーザ名:". $_SERVER['PHP_AUTH_USER']." --line_b"."<br />"); 16 17 // 入力されたアカウントが正しいかチェック 18 $result = mysql_query( "SELECT COUNT(id) AS rows FROM `account` WHERE name = $_SERVER [ 'PHP_AUTH_USER' ] AND password = $_SERVER ['PHP_AUTH_PW' ]", $conn); 19 20 echo( $_SERVER [ 'PHP_AUTH_USER' ]."-".$_SERVER ['PHP_AUTH_PW' ]."--line_c"."<br />"); 21 echo($result."--line_d"."<br />"); 以下略 これでブラウザから認証を経てログインすると、 string(20) "Array --line_a " ユーザ名:taro --line_b taro-ptaro--line_c --line_d となって、$result に値が入りません。 18行の WHERE句を外し、 $result = mysql_query( "SELECT COUNT(id) AS rows FROM `account`", $conn) or die("result取得エラー") ; とすると、 string(20) "Array --line_a " ユーザ名:taro --line_b taro-abc--line_c Resource id #3--line_d となり、$result にResource id #3 が返ります。 WHERE句で name = 'taro'  を指定し、 $result = mysql_query( "SELECT COUNT(id) AS rows FROM `account` WHERE name = 'taro' ", $conn) or die("result取得エラー");  とすると、 string(20) "Array --line_a " ユーザ名:taro --line_b taro-abc--line_c Resource id #3--line_d となり、やはり、$result にResource id #3 が返ります。password を追加し、WHERE name = 'taro' AND password = 'abc' としても、Resource id #3--line_d と出ます。 ところが、18行の taro を $_SERVER [ 'PHP_AUTH_USER' ] に置き換え、 $result = mysql_query( "SELECT COUNT(id) AS rows FROM `account` WHERE name = $_SERVER [ 'PHP_AUTH_USER' ] AND password = 'abc'", $conn) or die("result 取得エラー") ; string(20) "Array --line_a " ユーザ名:taro --line_b result 取得エラー となって、$result に値が入りません。 $_SERVER [ 'PHP_AUTH_USER' ] を’’で囲んでも同じ。 何故でしょうか? どのようにすれば不具合の解決ができるでしょうか?

    • ベストアンサー
    • PHP
  • ハンドルネームでのユーザ登録を、人に勧めてもOK?

    学校や塾で、例えば「GMailのアカウントを取得しましょう」と人に勧めたけど、本名で登録するのはいやだと言われた時、「ではハンドルネームを使いましょう」と塾や学校側が勧めるのは問題なのでしょうか?? ・・ハンドルネームでのユーザ登録を禁止しているサイトなどもきっとありますよね。

  • ユーザ登録において、一人が複数のIDを取得することを防止する手段は?

    ユーザ登録をし、インターネット上のサービスにアクセスする個人認証(民間が行うことができる手段)を考えます。 あらゆる人が高確率でユーザ登録可能で、かつ一人が複数のIDを持つことを高確率で防止する手段としては、どのような認証が考えられますか? また、それに必要なコスト(手間)はどの程度でしょうか(高確率というのが曖昧ですが、多くのアイデアを頂く為このような表現になりました) 例1 指紋認証 指紋は、ほぼ100%の人が固有のものを持っていて、同一の指紋を持つ人は(確率的に)居ないとされているので、上記の条件を満たすと思います。この場合のコストは、まず登録時に指紋を採取・取得する必要がありますので、オンラインでのユーザ登録はほぼ不可能であり、対面もしくは郵送などの手段が必要になると思われます。 例2 顔写真認証 顔も、指紋と同様の特性があると思われます。この場合のコストは、顔写真の取得手段ですが、最近の携帯電話にはデジカメもほぼ搭載されていますので、指紋よりも取得コストは小さいと思われます。ただ、複数ID登録防止の為の照合に関して、機械的に判断することが難しい気がするので、その点でかなりコストが大きいと思います。 例3 携帯電話認証 上記と比較してかなり精度は落ちますが、携帯電話は日本人であれば70~80%の人が所有していると思われ、電話番号は固有のものとなります。ただ、一人が複数の携帯電話を所有することも有り得るので、複数ID登録は完全に防止することはできません。ただ、この場合のコストは、生体認証と比較して軽いものとなります。 そのほかに、この条件を満たす個人認証はどのようなものがありますか?

  • オラクルユーザのパスワード変更

    オラクル初心者です。 今Java+OracleでWeb開発を行っているのですが、ユーザ認証にオラクルユーザ認証(Web環境にログインできるかどうかを、データベースに接続できるかで認証をかけている)を利用しています。 そこで、Web上からオラクルユーザのパスワードを変更したいと思うのですが、新しいパスワードを入力させ、単純に ALTER USER [USER_NAME] IDENTIFIED BY [PASSWORD] だと、新しいパスワードに変更はできるのですが、最初に現在のパスワード入力を促して、それが現在設定されてるパスワードと正しいか判定した結果、正しければ変更を行うようにしたいのです。そこで質問なのですが、現在設定されてるパスワードというのは、どのようにしたら取得できるのでしょうか??私の調べ不足かもしれませんが、わかりませんでした。どなたかご教授いただけないでしょうか??よろしくお願いします。

  • 0Auth+PHPで初回ユーザならデータベースに

    質問は、初回ユーザならmysqlのデータベースに格納し、初回でなければcallback.phpから../../index.phpにログインしたScreen_nameを表示させたいのですが、どうにもうまくいかず、どなたかご教授して頂けませんでしょうか。 よろしくお願い致します。 <?php session_start(); require_once('twitteroauth.php'); define('CONSUMER_KEY', 'xxxxx'); define('CONSUMER_SECRET', 'xxxxx'); // getToken.php でセットした oauth_token と一致するかチェック if ($_SESSION['oauth_token'] !== $_REQUEST['oauth_token']) { unset($_SESSION); echo '<a href="getToken.php">token不一致。最初からどうぞ</a>'; exit; } // access token 取得 $tw = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); $access_token = $tw->getAccessToken($_REQUEST['oauth_verifier']); // Twitter の user_id + screen_name(表示名) $user_id = $access_token['user_id']; $screen_name = $access_token['screen_name']; // 初回ユーザかチェックするロジック ここから分からなくなっています。。。。。。。 mysql_connect ('localhost', 'root', 'xxxx'); mysql_select_db('xxxx'); $user_id = get_current_user_id(); if ($user_id == 0) { $sql = "insert into xxxxx values (user_id char(50), screen_name char(255))"; } else { $user_id=$_POST['user_id']; }

    • ベストアンサー
    • PHP
  • facebook 「ユーザーネーム」設定

    facebook を始めようと思い、登録をしてみました。 一度登録した「ユーザーネーム」(URLになるもの)は、 後から変更はできないのでしょうか? ※アカウント設定の「ユーザーネーム」という項目が 出てこなくなってしまっていて、困っています。 どなたかご存じの方は教えいただけますか? よろしくお願いいたします。

  • facebookユーザー名ユーザー名

    すみません、解決しなかったので再投稿します。 facebook使用してますがユーザー名取得する為「アカウント」-「アカウントの設定」で ユーザーネームのところをクリックすると”ユーザーネームを設定するには、アカウントの認証を実行していただく必要があります。 携帯のメールアドレスをお持ちの場合は、携帯メールアドレス認証を行ってください。お持ちでない場合は、現時点でユーザネームの登録をすることができません。ご了承ください。”と表示され継続をクリックすると「”国番号、電話番号」入力欄がでてきます。アカウントの承認は既に完了してます。 携帯もってないとユーザー名取得はできないのでしょうか?

  • facebookページのユーザネーム

    facebookページでユーザネームを変更したために再度ユーザネームを登録できなくなりました。現在ユーザネームはなしでfacebookページを持っています。ユーザネームを付けるにはどうすればよいですか。例えば14日間後に削除されるのでその後に再度同じfacebookページを作ることはできますか

専門家に質問してみよう